如何更改React Native推送通知状态栏图标?

6
我正在使用 firebasereact-native-push-notification 推送通知到我的 Android 应用程序,但无法更改小的通知图标为自定义图标,并且这个主题的所有线程似乎都没有帮助。 我的 @mipmap 文件夹中有 ic_test.png,但我的 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"
/>

情况:

enter image description here

enter image description here

你们有什么想法,我在这里做错了什么吗?

编辑:

对于本地通知,通过在清单中不设置任何图标元数据资源,我将其解决了。我只设置了以下元数据资源:

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

改变图标的背景颜色。 同时,设置以下键值对。
PushNotification.localNotification({...parameters, smallIcon: 'ic_test'});

触发本地通知时。

编辑:

我正在使用Firebase Cloud Messaging传统的HTTP协议,设置icon参数为"ic_test"似乎也没有起作用。

1个回答

6

实际上,它显示为空白的白色正方形是因为你处于开发模式,通过构建生产模式,你可以看到与你的应用图标完全相同的东西。

然而,如果你想创建你自己的图标,你应该遵循material principles,然后使用此链接生成所有尺寸,并将图标命名为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

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

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