gpt4 book ai didi

javascript - Azure移动服务成功回调 `push.apns.send`

转载 作者:行者123 更新时间:2023-11-29 19:57:55 24 4
gpt4 key购买 nike

push.apns.send 方法不会调用 success 回调。因此,如果执行成功,我们无法确定此操作何时完成。

这是我的代码(它是服务器端脚本的一部分,该脚本在其中一个数据表的插入事件上运行):

  push.apns.send(message.deviceToken, {
alert: message.alert,
badge: message.badge,
sound: message.sound,
payload: {
message: message.alert,
appID: message.appID
}
}, {
success: function(resp) {
console.log(resp)
},
error: function(err) {
console.error(err)
}
})

error 回调有效。例如,当我传递无效的 deviceToken 时,我可以在日志中看到错误消息。但如果执行成功,日志中就没有任何内容。看起来它根本没有调用 success 回调。

本例中没有显示,但在我的例子中,我需要 success 回调来更改记录的状态并保存它。

最佳答案

不幸的是,Apple Push Notification Service (APNS) 就是这样的。作品。基本上,在幕后,将向 APNS 打开 TCP 连接,并将与您的消息相对应的字节(正确格式)发送到服务。如果推送成功,APNS 不会发回任何响应。如果没有,它可能会立即响应(这是调用错误回调的情况),也可能不会 - 稍后当您尝试访问反馈服务时,它可能会告诉您出现错误。

因此,鉴于没有可靠的方法来告诉 push.apns.send 的调用者推送已成功,团队认为添加 success 没有意义 回调(这会给人推送成功的错误印象)。

您可能想要使用的一个启发式方法是首先发送推送,然后等待 (setTimeout) 一段时间,如果未调用错误回调,则您认为推送已发送成功的。请注意,正如我上面提到的,它并不是 100% 准确,但对于您的场景来说可能已经足够了。

关于javascript - Azure移动服务成功回调 `push.apns.send`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com