【问题标题】:NativeScript Firebase onMessageReceivedCallback does not fire on iOSNativeScript Firebase onMessageReceivedCallback 不会在 iOS 上触发
【发布时间】:2020-10-23 14:16:03
【问题描述】:

我正在使用 NativeScript-Vue (7.0) 并使用此代码初始化 Firebase:

firebase.init({
        onMessageReceivedCallback: (message) => {
          console.log("[Firebase] onMessageReceivedCallback:", { message });
        },
        onPushTokenReceivedCallback: (token) => {
          console.log("[Firebase] onPushTokenReceivedCallback:", { token });
        },
      })
      .then(() => console.log("Firebase initialised."));

在 Android 上一切正常,但在 iOS 上(在模拟器和真实设备上)发生了两件事:

  1. onPushTokenReceivedCallback 被解雇两次(使用相同的令牌)
  2. 即使应用程序在前台,onMessageReceivedCallback 也不会被触发。

我正在使用 FCM Dashboard 发送通知,尝试了 Test 和 Campaign 自定义数据通知。它仅适用于 Android。

我了解在 iOS 中实现后台推送通知存在复杂性,但在应用运行时在前台,为什么它没有收到消息?

我正在使用这个firebase plugin,除了Enabling push support in Xcode 之外,我关注了文档中的所有内容,因为显然此设置已从 Xcode 中免费获得苹果开发者帐户。但我确实按照here 所述手动添加了权利。

接收消息回叫需要一些特殊权限还是我错过了什么?

【问题讨论】:

  • 运气好吗?我遇到了类似的问题,除了我发现两个回调都被调用了两次
  • @NickWiltshire 是的,我解决了这个问题。我的问题是 APNs 没有配置 FCM。阅读:firebase.google.com/docs/cloud-messaging/ios/certs |此外,为了生成这些证书/密钥,我升级到付费 Apple Developer 帐户。生成 AUTH 密钥后,您需要前往Project Settings > Cloud Messaging 上传/设置密钥。另外,你需要一个真正的 iOS 设备(不是模拟器)来发送后台推送。

标签: ios firebase nativescript


【解决方案1】:

不幸的是,我认为您必须在 XCode 中启用推送通知功能。

一旦你这样做了,如果你使用@nativescript/ios: 7+ 和@nativescript/firebase: 11.0.0 当你得到前台通知工作时,应用程序将会崩溃。为了解决这个问题,我们必须使用 `@nativescript/ios: "6.5.3"(它使用原始的 JSC iOS 运行时而不是新的 V8 iOS 运行时)为我们解决了应用程序崩溃问题。

祝你好运!

【讨论】:

  • 感谢您的回答,将尝试此方法并报告。
猜你喜欢
  • 2019-04-17
  • 2020-09-10
  • 2019-03-30
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
相关资源
最近更新 更多