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

FCM前台推送异常:Capacitor应用内部测试时系统托盘收通知

背景

FCM Android消息处理文档规定,推送通知仅在应用处于后台时才会显示在系统托盘,应用前台时通知不应出现。但我用Capacitor开发的应用,当前在Google Play内部测试套件进行Beta测试,发送推送通知时,即使应用处于前台,既会触发onMessageReceived回调,又会在系统托盘显示通知,与文档描述不符。

我怀疑的可能原因:

  • 是否误读了FCM文档?
  • 内部测试环境是否导致FCM无法正确检测应用前台状态?
  • 老旧且不支持的Capacitor版本是否存在问题?
  • 发送的FCM消息格式是否有误?

发送的FCM消息示例(使用最新版firebase-admin SDK):

{
  data: { /* 自定义数据 */ },
  notification: { title: "My title", body: 'My body' },
  android: { notification: { priority: 'max', visibility: 'public' } },
  apns: { payload: { aps: [Object] } },
  tokens: /* 目标设备令牌 */
}

观察到的现象:

  • iOS平台(Capacitor跨平台特性)存在相同问题,前台时既触发回调又显示系统托盘通知
  • Android平台前台显示的通知不可点击
  • 应用后台时,系统托盘通知正常显示且可点击,能正确打开应用并触发回调
  • 刚从使用已关闭旧API的老旧firebase-admin SDK升级到最新版,此前无此问题

我的问题

  1. 该问题是否由内部测试环境导致?若是,正式版是否会恢复正常?
  2. 若不是,是否有人遇到过该问题?如何解决?
  3. 若没有相关经验,可能的问题原因是什么?

已尝试的操作

  • 移除android.notification.priority和.visibility属性,问题依旧
  • 调研发现相关内容均是讨论如何实现前台显示系统托盘通知,找不到解决该异常的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:23:24