我有一个小问题。我正在尝试测试推送通知功能,但无法弄清楚。我设置了一个用于发送通知的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)}`)
})
非常感谢您的帮助!
答案 0 :(得分:2)
我最终发现了。原来,如果我使用voip包,则需要在包.voip的末尾添加。因此,捆绑包的外观类似于org.test.Test.voip。我做完了..
答案 1 :(得分:0)
IOS遵循正确的推送通知格式。如果您未遵循正确的格式,则不会发送您的通知。还应该有一个aps
标签。
{
"aps": {
"alert": "Hello World",
"sound": "default"
},
"customData": {
"CustomKey": "CustomValue",
}
}
答案 2 :(得分:0)
在捆绑包的末尾添加.voip解决了我的问题。谢谢
答案 3 :(得分:0)
在我的情况下,问题在于,服务器正在获取推送工具设备令牌,即voIP令牌,而捆绑包ID是“ com.something”。
解决方案:对于通知用户的voIP类型,请使用“ com.something.voip”主题/捆绑ID。