如何更改本机推送通知状态栏图标?

Posted

技术标签:

【中文标题】如何更改本机推送通知状态栏图标?【英文标题】:How to change react native push notifications status bar icon? 【发布时间】:2021-01-20 23:58:21 【问题描述】:

我正在使用 firebasereact-native-push-notification 将通知推送到我的 android 应用程序并努力用我自己的图标更改小通知图标,关于这个主题的线程似乎都没有帮助.我的ic_test.png 位于我的@mipmap 文件夹中,而我的Android 清单中的这些元数据声明都不起作用:

1。 xml <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_test" />

2。 xml <meta-data android:name="com.dieam.reactnativepushnotification.notification_icon" android:resource="@mipmap/ic_test" />

不过,我可以通过添加元数据来更改图标的颜色:

<meta-data  
  android:name="com.dieam.reactnativepushnotification.notification_color"
  android:resource="@android:color/white"
/>

情况:

有什么想法我在这里可能做错了吗?

编辑:

通过不在清单中设置任何图标元数据资源,使其适用于本地通知。我只是设置了以下元数据资源

<meta-data  
  android:name="com.dieam.reactnativepushnotification.notification_color"
  android:resource="@android:color/MY_COLOR"
/>

改变图标的​​背景颜色。

另外,设置如下键值对

PushNotification.localNotification(...parameters, smallIcon: 'ic_test');

触发本地通知时。

编辑:

我正在使用Firebase Cloud Messaging legacy HTTP protocol 并将icon 参数设置为"ic_test" 似乎也不起作用。

【问题讨论】:

【参考方案1】:

实际上,它显示为一个白色的空白方块,因为您处于开发模式,通过在生产模式下构建,您可以看到与您的应用图标完全一样的东西。

但是,如果您想制作自己的图标,请关注 material principles。然后使用this link生成所有尺寸并输入图标名称ic_notification

然后把所有尺寸ic_notification放到以下地址:

android/app/main/res/mipmap

并且将以下行添加到AndroidManifest.xml 文件中:

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/ic_notification" />

清理构建文件夹,清理缓存文件并使用yarn start --reset-cache,然后使用yarn android

提示:如果您使用的是模拟器,请注意在您的模拟器高级选项中使用Cold Boot 而不是Quick Boot

【讨论】:

清理构建文件夹和缓存 + 冷启动真的做到了,感谢 m8!

以上是关于如何更改本机推送通知状态栏图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中堆叠推送通知?

如何以编程方式更改解析推送通知图标?

如何清除状态栏上的推送通知警报 - android

worklight 更改 android 推送通知图标

如何在 ionic 2 中更改推送通知的图标/徽标

收到推送通知时如何更改范围变量