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

Ionic FCM插件onNotification函数失效,调试无法接收通知

解决FCM onNotification()回调不触发的问题

看起来你现在的核心问题是:后台能收到通知,但onNotification()订阅没有日志输出,也就是这个回调没生效。咱们一步步来排查:

1. 先搞懂FCM消息的两种类型差异

FCM的消息分两种,通知消息(notification payload)和数据消息(data payload),混合发送时的行为和APP状态直接相关:

  • 当APP处于后台时,系统会自动把notification payload展示在通知栏,这时候onNotification()不会触发,只有当用户点击通知栏消息时,才会把消息数据传给这个回调。
  • 当APP处于前台时,系统不会自动弹通知,onNotification()会直接触发,你需要在回调里自己处理弹窗逻辑。

所以你测试的时候,一定要确保APP是前台活跃状态(打开着,没退到后台),再发请求试试,看控制台有没有日志输出。

2. 修正你的请求Payload格式

你现在把content_available、priority这些参数放在了notification对象里,其实这些是顶层全局参数,不属于notification的子属性。正确的JSON格式应该是这样:

{ 
  "registration_ids": [ "your_device_token" ], 
  "notification": { 
    "title": "New request", 
    "body": "Your action required to accept.",
    "sound": "default", 
    "click_action": "FCM_PLUGIN_ACTIVITY" 
  },
  "data": { "key": "value" },
  "content_available": false, 
  "priority": "high"
}

格式错误可能导致FCM插件无法正确解析消息,调整后再测试。

3. 检查onNotification()的订阅时机

要确保这个订阅是在APP初始化的早期就执行,比如在app.component.ts的ngOnInit()方法里(如果你用的是Ionic/Angular),别被其他异步逻辑阻塞。如果订阅太晚,可能消息已经到达但回调还没注册上,自然不会有日志。

另外,确认你的FCM插件版本和项目框架版本兼容,比如用@ionic-native/fcm的话,要对应上你的Ionic版本,旧版本插件可能存在回调不触发的bug,必要时可以尝试更新插件。

4. 测试纯数据消息排查问题

你可以先发送一个只有data字段的消息,这种消息不管APP在前台还是后台,onNotification()都会触发(后台时点击通知也会触发),这样能快速排查是不是notification payload的问题。请求示例:

{ 
  "registration_ids": [ "your_device_token" ], 
  "data": { 
    "title": "New request", 
    "body": "Your action required to accept.",
    "key": "value"
  },
  "priority": "high"
}

如果这时候onNotification()能打印出数据,说明是混合消息的处理逻辑问题,再针对性调整。

5. 检查平台专属配置

  • Android端:确保AndroidManifest.xml里正确配置了click_action对应的Activity,比如你的click_action是FCM_PLUGIN_ACTIVITY,要保证这个Activity存在,并且有正确的intent filter,不然点击通知后也无法触发回调。
  • iOS端:确保已经开启了远程通知权限,并且在AppDelegate里正确处理了FCM的回调方法(比如didReceiveRemoteNotification),把消息转发给FCM插件。

按照上面的步骤逐一排查,应该能解决onNotification()不生效的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:17:30