未传递 React Native FCM iOS 推送通知

kri*_*wat 9 apple-push-notifications ios firebase react-native firebase-cloud-messaging

首先,环境是 React Native,我尝试按照rnfirebase包中的说明在 iOS 中设置推送通知这里我做什么步骤,我在真实 iPhone 设备上进行测试

  1. 创建密钥

在此处输入图片说明

  1. 然后添加到firebase

在此处输入图片说明

  1. 添加 Google-service.plist 并添加来自 firebase doc 的设置

在此处输入图片说明

并激活能力 在此处输入图片说明

  1. 然后我安装 pod 包

在此处输入图片说明

  1. 运行应用程序得到令牌

在此处输入图片说明

  1. 在云消息控制台上使用令牌发送

通知未送达 我不知道出了什么问题,因为消息也是从 FCM 发送的,而 APNS 上会发生什么,我在那里收到错误只是感到困惑

感谢提前

并尝试直接与推杆连接 在此处输入图片说明

也没有再次收到

然后尝试使用具有与 Firebase 相同的证书的 Onesignal 即使在测试消息上也可以使用

TAL*_*ALE 1

您在 Pusher 中使用的令牌看起来不正确。我的远程通知令牌如下所示。

在此输入图像描述

我只是测试静默推送,但令牌看起来与常规警报类似。这是我用来获取令牌的代码。我的猜测是您正在向 FCM 推送一个错误的令牌。

fileprivate func convertHexDataToString(_ data: Data) -> String {
    var string: String = ""
    for i in 0..<data.count {
        string += String(format: "%02.2hhx", data[i] as CVarArg)
    }
    return string
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    let tokenString = convertHexDataToString(deviceToken)
    #if DEBUG
    print("APN sandbox token: '\(tokenString)'")
    Messaging.messaging().setAPNSToken(deviceToken, type: .sandbox)
    #else
    print("APN prod token: '\(tokenString)'")
    Messaging.messaging().setAPNSToken(deviceToken, type: .prod)
    #endif        
}
Run Code Online (Sandbox Code Playgroud)