You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova Android中Phonegap Push Plugin推送图标显示异常求助

解决PhoneGap Push Plugin通知图标显示白色方块的问题

针对你遇到的通知图标显示白色方块的问题,结合你使用的cordova@8.0.0和cordova-android@6.4.0版本,我整理了几个关键的排查和修复步骤:

1. 先确认通知图标符合Android的硬性要求

Android系统对通知图标有严格规范,这是很多人踩坑的关键点:

  • 必须是透明背景的单色(白色)图标,如果图标有非透明背景或其他颜色,系统会自动把非透明区域转为白色方块。
  • 虽然你暂时用同一张图测试,但最终建议替换为对应dpi规格的图标(xhdpi:96x96、hdpi:72x72、mdpi:48x48、ldpi:36x36)。

2. 修正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>

同时要确认star.png确实放在www/images目录下,且没有被构建工具压缩或忽略。

3. 调整插件初始化的配置参数

插件初始化时,icon参数必须使用不带后缀的文件名,和你放入drawable文件夹的文件名保持一致:

let push = PushNotification.init({
    android: {
        senderID: globalData.firebaseSenderID,
        icon: 'star', // 这里只写文件名,不要带.png后缀
        iconColor: 'blue'
    },
    ios: {}
});

注:iconColor是用来设置通知图标的背景色(仅Android 5.0+生效),这个参数本身没问题,前提是图标符合要求。

4. 清理Cordova缓存并重新构建项目

Cordova的缓存经常会导致资源不更新,执行以下命令彻底清理重建:

# 清理平台缓存
cordova clean android
# 移除并重新添加Android平台(解决顽固缓存问题)
cordova platform remove android
cordova platform add android@6.4.0
# 重新构建项目
cordova build android

额外排查点

  • 检查生成的Android项目:打开platforms/android目录,查看res/drawable-*/文件夹里是否存在star.png,如果没有,说明资源文件没被正确复制,要检查config.xml的路径是否写错。
  • 换标准图标测试:如果还是不行,建议用Android官方的通知图标模板制作一个完全符合规范的图标再测试,排除图标本身的问题。

内容的提问来源于stack exchange,提问作者wezten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:46:04