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

Flutter中Pusher Beams是否有后台消息接收回调及通知内容修改方法?

关于Flutter中Pusher Beams修改推送通知及后台监听的问题

一、能否在推送通知前修改标题和内容?

可以,但要分前台和后台/杀死状态两种场景处理:

  1. 应用前台运行时
    直接用你提到的onMessageReceivedInTheForeground方法,拿到推送消息后可自由修改标题、内容,再调用Flutter本地通知插件(比如flutter_local_notifications)自定义显示通知,完全替代Pusher Beams默认的通知展示逻辑。

  2. 应用后台/杀死状态时
    此时推送由系统(Android的FCM、iOS的APNs)接管,Flutter层无法直接拦截,需针对不同平台做原生配置:

  • Android端:
    自定义FirebaseMessagingService(Pusher Beams基于FCM推送),重写onMessageReceived方法。当Pusher推送到达时,该方法会被触发,你可以在这里解析推送内容、修改标题和正文,再调用Android通知管理器手动发送自定义通知,覆盖默认推送展示。
  • iOS端:
    借助苹果的UNNotificationServiceExtension扩展:
    • 在Xcode中创建该扩展,在didReceiveNotificationRequest:withContentHandler:方法里修改推送的标题、内容等字段;
    • 要求后端在推送Payload中添加mutable-content: 1参数,系统才会触发这个扩展,允许你修改通知内容后再展示给用户。
      注意:普通远程推送(不带静默配置)在后台时,只有这个扩展能修改通知内容,Flutter代码无法直接拦截。

二、是否存在后台监听消息的方法?

有,但需分平台处理:

  • Android端:
    上述FirebaseMessagingService的onMessageReceived方法,无论应用在后台还是被杀死状态(只要设备联网且有推送权限),都会触发该方法,你可在此监听并处理消息,包括修改通知、执行后台逻辑等。
  • iOS端:
    • 若为静默推送(Payload包含content-available: 1),应用在后台会被短暂唤醒,你可在Flutter的FirebaseMessaging的onBackgroundMessage回调中处理消息,但执行时间有限(一般不超过30秒);
    • 若为普通推送,后台状态下无法直接在Flutter层监听消息,只能通过UNNotificationServiceExtension修改通知内容,或用户点击通知后,在UNUserNotificationCenterDelegate的回调中处理;
    • Pusher Beams本身没有提供跨平台的后台消息监听方法,需依赖原生系统的推送回调能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:32:44