Flutter 如何修改 Push Notifications 推送通知的背景颜色
Flutter 可以实现自定义推送通知背景色的效果。推送通知的渲染本身是系统级能力,需要结合原生侧的配置来实现,具体方案如下:
分系统实现说明
Android 端
- 普通通知背景色修改:在通知构建逻辑中调用
NotificationCompat.Builder的setColor()方法传入对应色值即可,Android 5.0及以上版本会将该颜色应用到通知的 accent 背景区域。 - 全背景色效果实现(类似Duolingo样式):需要用自定义通知布局:
- 在Android项目
res/layout目录下创建自定义通知XML布局,直接在根布局设置目标背景色 - 在推送消息接收回调中,通过
RemoteViews加载自定义布局,填充标题、内容等展示字段后,传入NotificationCompat.Builder的setCustomContentView(折叠态)和setCustomBigContentView(展开态)方法
- 在Android项目
提示:Android 12及以上系统对自定义通知的可用区域做了强制限制,无法完全铺满通知栏全宽,需要提前适配不同系统版本的展示效果。
iOS 端
iOS 10及以上版本支持自定义通知背景色,需要借助扩展能力实现:
- 开启项目的 Notification Content Extension 能力,在扩展对应的
ViewController中自定义通知展示视图,直接设置根视图的背景色即可 - 推送通知的 payload 中需要添加
mutable-content = 1和对应category标识,触发系统调用自定义的通知渲染逻辑
提示:iOS 系统对通知的圆角、上下边距有统一规范,自定义背景色只会在系统预留的内容区域内展示,无法覆盖系统自带的边距区域。
Flutter 侧适配
如果使用flutter_local_notifications等官方/第三方推送插件,可直接在插件提供的通知配置类中传入对应颜色参数;如果需要完全自定义布局,可通过Flutter平台通道调用原生侧的自定义通知构建逻辑即可。

内容的提问来源于stack exchange,提问作者LoveCoding
相关产品推荐
相关产品推荐

