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

Flutter集成OneSignal推送:Android部分设备通知小图标不显示求助

Flutter OneSignal 通知小图标空白问题解决方案(将启动图标转为通知图标)

问题根源

Android系统(尤其是Android 8.0及以上)对通知小图标有严格要求:必须是单色(白色前景+透明背景)的Alpha通道图标。如果直接使用彩色的应用启动图标,系统会自动将其处理为空白方块,不同设备的系统版本差异导致了部分显示正常、部分显示空白的情况。

解决步骤

1. 生成符合要求的单色通知图标(基于启动图标)

用Android Studio的Image Asset工具快速生成适配所有分辨率的通知图标:

  • 打开Flutter项目下的android文件夹(用Android Studio打开)
  • 右键点击res文件夹 → New → Image Asset
  • 在Asset Type中选择Notification Icons
  • 点击Path选择你的应用启动图标作为源素材,调整样式确保图标为白色前景、透明背景
  • 点击Next完成生成,工具会自动在res/mipmap-xxxhdpi等分辨率文件夹下生成对应的通知图标(默认命名为ic_notification)

2. 配置OneSignal使用该图标

有两种配置方式,任选其一即可:

  • 控制台配置:
    登录OneSignal后台,进入你的应用 → Settings → Android → Notification Icons,上传刚生成的单色图标,设置为默认小图标。
  • 本地配置:
    打开android/app/src/main/AndroidManifest.xml,在<application>标签内添加以下meta-data:
    <meta-data
        android:name="com.onesignal.notification_icon"
        android:resource="@mipmap/ic_notification" />
    
    注意:@mipmap/ic_notification要和你生成的图标文件名完全一致。

3. 兼容旧版本(可选)

对于Android 7.1及以下系统,虽然支持彩色大图标,但小图标仍建议使用单色版本以保证一致性。如果需要显示彩色启动图标作为通知大图标,可以在发送通知时设置large_icon参数为你的启动图标URL,或在OneSignal控制台配置默认大图标。

4. 验证

重新打包APK并安装到之前显示空白的设备上,使用OneSignal的测试推送功能发送通知,确认图标正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:49:59