不允许主题推送通知

时间:2018-09-19 11:11:16

标签: ios react-native apn

我有一个小问题。我正在尝试测试推送通知功能,但无法弄清楚。我设置了一个用于发送通知的webRTC页面(我不拥有2个IOS设备)。所有证书/密钥都是使用快速通道操作(匹配和pem)生成的。我知道我正在对apnOptions使用生产功能,并且生成了正确的证书。当我在key或teamID上写一些乱码时,我得到了错误,因此我的证书应该没问题。捆绑包标识符正是在开发人员Apple页面上显示的标识符。enter code here

这是我的令牌和通知:

 var apnProvider = new apn.Provider({
  token: {
    key: "cert/key.p8",
    keyId: "#",
    teamId: "#"
  },
  production: true
  });


if (deviceToken) {
        if (platform === 'ios') {
          let note = new apn.Notification()
          note.alert = 'Hello World'
          note = Object.assign(note, {
            // Expires 1 hour from now.
            expiry: Math.floor(Date.now() / 1000) + 3600,
            badge: 3,
            payload: payloadBody,
            topic: "org.#.#"
          })

          apnProvider.send(note, deviceToken).then((result) => {
            console.log('APNPROVIDER RESULT', `PLATFORM: ${platform}, RESULT:${JSON.stringify(result)}`)
          })

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

我最终发现了。原来,如果我使用voip包,则需要在包.voip的末尾添加。因此,捆绑包的外观类似于org.test.Test.voip。我做完了..

答案 1 :(得分:0)

IOS遵循正确的推送通知格式。如果您未遵循正确的格式,则不会发送您的通知。还应该有一个aps标签。

{
  "aps": {
     "alert": "Hello World",
     "sound": "default"
   },
  "customData": {
    "CustomKey": "CustomValue",
    }
 }

您可以点击此链接以供参考 https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification

答案 2 :(得分:0)

在捆绑包的末尾添加.voip解决了我的问题。谢谢

答案 3 :(得分:0)

在我的情况下,问题在于,服务器正在获取推送工具设备令牌,即voIP令牌,而捆绑包ID是“ com.something”。

解决方案:对于通知用户的voIP类型,请使用“ com.something.voip”主题/捆绑ID。