React Native Firebase - 在 iOS 上 onMessage 事件不会在前台触发

问题描述 投票:0回答:1

此问题已在 GitHub issues here 中提交 - 重新发布,希望为遇到相同问题的其他人节省时间

尝试将旧应用程序使用的推送通知包更改为最新的 React Native 和 Firebase 消息传递。我从头开始设置了一个新应用程序来隔离问题 - 所有新标识符、捆绑 ID、证书等。新项目中安装的唯一内容是

yarn add @react-native-firebase/app
@react-native-firebase/messaging

在 Android 上一切正常。在 iOS 后台和终止状态消息也可以工作,但是在前台时永远不会触发 onMessage 事件 😢

我遵循了 https://reactnative.dev/docs/environment-setuphttps://rnfirebase.io/https://rnfirebase.io/messaging/usage 上的所有最新指南https://rnfirebase.io/messaging/usage/ios-setup.

我正在使用 AWS SNS 发送通知。

ios react-native push-notification react-native-firebase
1个回答
0
投票

在回复我的 GitHub 问题的优秀人士的帮助下,我能够让它发挥作用。

非常感谢大家,现在可以使用了🎉

当从 Firebase 控制台发送通知时,

onMessage
功能可以正常工作,但我们的后端使用 AWS SNS,切换到使用 Firebase REST API 会太复杂。

进一步调查,我发现旧的 GitHub 问题(例如 #3479#5908)中有用的讨论解决了

gcm.message_id
键的问题。

我没有通过删除

RNFBMessaging+UNUserNotificationCenter.m
条件(这有在更新期间被覆盖的风险)来更改
if (notification.request.content.userInfo[@"gcm.message_id"])
中的代码,而是选择向有效负载添加一个虚拟
gcm.message_id
。事实证明这个解决方案是有效的。

{
  "aps": {
    "alert": {
      "title": "Sample Title",
      "body": "Sample Message"
    }
  },
  "url": "https://example.com",
  "gcm.message_id": "123"
}
© www.soinside.com 2019 - 2024. All rights reserved.