如何在 Cordova Android 应用程序中更改 OneSignal 通知的小图标?

4

我使用Cordova和Phonegap创建了一个应用程序,我使用OneSignal发送推送通知,但当我向用户发送通知时,它会显示一个小铃铛图标和一个大铃铛图标。我已经更改了大铃铛图标,因为它使用链接,而小铃铛图标使用资源,所以我无法更改,请帮助我。

6个回答

3
创建一张透明图片并将其命名为ic_stat_onesignal_default,然后在需要的地方调用它即可。这样就可以正常工作了。

1
我创建了一个位置,关于config.xml应该放在哪里。 - Divyansh Pratap Singh

3
@Yokesh是正确的,图标必须命名为ic_stat_onesignal_default。但是文件的位置取决于您使用的Cordova分支。
对于Cordova CLI或Ionic,路径为: <project-root>/platforms/android/res/drawable-[SIZE_NAMES]/ PhoneGap Build(PGB): <project-root>/locales/android/drawable-[SIZE_NAMES]/hdpixhdpixxhdpixxxhdpi替换[SIZE_NAMES],为每个名称创建一个文件夹。总共将创建四个文件夹。
有关更多详细信息,请参见OneSignal的自定义通知图标指南。

1
我已经给它命名了,但是相对于config.xml文件,我应该把它放在哪里? - Divyansh Pratap Singh
这个方法对我很有效。唯一我不知道的事情是那些图片需要像这里解释的那样是白色和透明的: https://dev59.com/k5nga4cB1Zd3GeqPgf1Y - Claudio Shigueo Watanabe
@jkasten 当我尝试使用你的解决方案时,通知中显示的是灰色框而不是图像。我的图标图像是彩色的而不是白色的。有没有办法创建彩色的小图标图像? - Darshana
1
@Darshana 从Android 5.0开始,通知图标不再支持颜色。现在只使用图像的alpha通道。但是可以设置一个强调颜色,它将应用于图像的alpha通道,这意味着您只能有一种颜色。 - jkasten

2
这个链接最终帮助了我:https://documentation.onesignal.com/docs/customize-notification-icons 您需要将ic_stat_onesignal_default.png按适当的尺寸添加到存储图标的每个资源文件夹中。对于cordova来说,这些文件夹分别是: platforms/android/res/drawable-hdpi platforms/android/res/drawable-ldpi platforms/android/res/drawable-mdpi platforms/android/res/drawable-xhdpi

我创建了一个Node包来帮助这个过程:https://www.npmjs.com/package/onesignal-push-icon - Mark

1
这是关于通知图标的官方文档:

https://documentation.onesignal.com/docs/customize-notification-icons

在drawable文件夹中,正常向量资源或png文件不起作用,即使是mipmap也一样。您需要创建具有不同大小配置的自定义drawable。
对于原生Android,请使用以下目录:
res/drawable-mdpi/ (24x24)
res/drawable-hdpi/ (36x36)
res/drawable-xhdpi/ (48x48)
res/drawable-xxhdpi/ (72x72)
res/drawable-xxxhdpi/ (96x96)
res/drawable-xxxhdpi/ (256x256) (Large Icon)

对于 Cordova

<project-root>/platforms/android/app/src/main/res/drawable-mdpi/ (24x24)
<project-root>/platforms/android/app/src/main/res/drawable-hdpi/ (36x36)
<project-root>/platforms/android/app/src/main/res/drawable-xhdpi/ (48x48)
<project-root>/platforms/android/app/src/main/res/drawable-xxhdpi/ (72x72)
<project-root>/platforms/android/app/src/main/res/drawable-xxxhdpi/ (96x96)
<project-root>/platforms/android/app/src/main/res/drawable-xxxhdpi/ (256x256) (Large Icon)

注意:在每个目录中使用相同的文件名。

0

这里有一个链接,请先尝试搜索,如果没有找到有用的信息,再考虑发布问题,因为已经有一些问题得到了回答。


他使用Notification.compat,而我使用One Signal。 - Divyansh Pratap Singh
什么是OneSignal?NotificationCompat.Builder用于支持旧平台。没有类似OneSignal的东西。或者请进一步阐述您的问题。 - Zubair Soomro
1
好的,Onesignal是一个在线服务,为我们提供了PC和移动应用程序的推送通知服务。我在我的phonegap项目中使用它的插件。好的,我成功地完成了整个过程,并能够发送通知,但是在通知中有两个图标,第一个是小图标,第二个是大图标。我能够更改大图标,因为它使用链接,但是小图标使用资源,所以我不知道在我的项目中放置小图标的位置。如果您知道,请帮助我。 - Divyansh Pratap Singh
你能展示一下你正在使用的代码吗?是关于通知构建器的吗? - Zubair Soomro

0

NotificationCompat.Builder notificationCompat = new NotificationCompat.Builder(this) .setWhen(System.currentTimeMillis()) .setAutoCancel(true) .setSmallIcon(R.mipmap.logo).setLargeIcon(R.mipmap.logo1)

NotificationCompat.Builder notificationCompat = new NotificationCompat.Builder(this) .setWhen(System.currentTimeMillis()) .setAutoCancel(true) .setSmallIcon(R.mipmap.logo).setLargeIcon(R.mipmap.logo1)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接