如何在Flutter中实现Android和iOS静默推送并禁用后台空通知
解决Flutter FirebaseMessaging后台显示空通知的问题
问题出在你发送FCM消息的Python配置上:你显式创建了空的AndroidNotification和Aps实例并传入配置,这会让Android和iOS的推送服务自动生成并展示空通知,哪怕你没有设置notification字段。
修复步骤:
- 移除
AndroidConfig中的notification参数,只保留必要的优先级配置 - 移除
APNSConfig里的空Aps配置(如果不需要APNS特定设置,甚至可以直接去掉整个apns参数) - 确保发送的消息仅包含
data和目标设备令牌,不携带任何触发系统通知的配置项
修改后的Python代码:
app = init_firebase() # 仅保留Android优先级配置,去掉空的notification androidConfig = messaging.AndroidConfig(priority="high") message = messaging.MulticastMessage( data=data, tokens=arr_tokens, android=androidConfig # 去掉空的apns配置,避免触发iOS空通知 ) response = messaging.send_multicast(message, app=app)
补充说明:
当你发送纯data类型的FCM消息时,无论应用处于前台还是后台,系统都不会自动展示通知。后台状态下,消息会被缓存,直到用户打开应用,你可以通过FirebaseMessaging.onMessageOpenedApp或FirebaseMessaging.getInitialMessage来获取并处理这些数据。
内容的提问来源于stack exchange,提问作者chipmunk
相关产品推荐
相关产品推荐

