当前位置 : 主页 > 手机开发 > cordova >

在Cordova Android中推送通知图标

来源:互联网 收集:自由互联 发布时间:2021-06-10
我正在使用 Phonegap Push Plugin,当通知区域显示推送通知时,图标只是一个白色方块.我希望它能显示star.png.我按照以下方式尝试了 the documentation: 我将star.png放在www / images中,并将以下行添加
我正在使用 Phonegap Push Plugin,当通知区域显示推送通知时,图标只是一个白色方块.我希望它能显示star.png.我按照以下方式尝试了 the documentation:

我将star.png放在www / images中,并将以下行添加到config.xml中

<platform name="android">
  <resource-file src="www/images/star.png" target="res/drawable-xhdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-hdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-mdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-ldpi/star.png" />
</platform>

(我知道我应该使用不同的分辨率,但我只是想让它现在正常工作.)

然后当我初始化插件时,我使用:

let push = PushNotification.init({
    android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
    ios: {}
});

我也尝试过icon:’star’.
然而,白色方块仍然存在.我怎样才能让它发挥作用?

使用cordova@8.0.0& cordova-android@6.4.0.

我对此插件和默认通知图标(白色方块)有同样的问题.似乎init()函数中的icon属性仅适用于GCM(插件版本1.x).我找到了一个解决方案来设置推送有效负载中的图标(从服务器发送).不幸的是我无法更改有效负载,因为它不是我们在此应用程序中的服务.

但幸运的是,firebase还有自己的推送图标设置(默认:白色方块图标),可以用AndroidManifest.xml中的元数据标签替换.

通过在位于platforms / android / app / src / main /的AndroidManifest.xml文件中添加以下元数据标记来尝试此解决方案:

<application>
    <!-- ... -->
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/star"/>
    <!-- ... -->
</application>

自动化 – 钩子

运行您的Android应用程序,并检查是否出现您的预期图标.如果你成功了,你现在可以像我们一样通过cordova钩子扩展你的项目.例如,以下OSX bash脚本总是将以上行添加到AndroidManifest:

sed -i '' "s|</application>|<meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable/star\"/></application>|1" platforms/android/app/src/main/AndroidManifest.xml
网友评论