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

标签 javascript azure push-notification apple-push-notifications azure-mobile-services

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/

相关文章:

javascript - 如何将 var 传递给 onPress?

javascript - 使用字符串变量的值调用 Javascript 函数的方法?

azure - 如何使用 Azure SQL 实现跨多个区域的数据跨度(而非复制)

azure - 使用azure将数据上传到企业数据库

iOS:当应用程序处于后台时防止显示特定通知

javascript - 无法正确向内容脚本发送消息

javascript - 为什么我不能在 React-Native Redux 中从我的 mapStateToProps 访问我的 this.state.props session 数组?

数据中心之间的 Azure 安全性

javascript - HTML 地理位置推送通知

swift - 'MessagingRemoteMessage' 已弃用 : FCM direct channel is deprecated, 请使用 APNs 进行下游消息处理