ios - 在没有网络连接的情况下处理 APNS 推送 token

标签 ios cocoa-touch push-notification apple-push-notifications

大多数文档建议在启动时注册远程通知,并在收到 token 后,使用任何其他特定于应用程序的设置(例如用户、应用程序内推送设置)将其推送到服务器。但是,我不确定如何处理以下极端情况。

如果用户在没有连接的情况下启动应用程序,则不会收到 token 。片刻之后,连接恢复。用户尝试更改应用程序中的某些设置,这应该提示向我的服务器发送帖子,包括设置和 token 。然而,代币仍然为零。

每次尝试发布设置之前都注册通知不是更好吗?似乎没有必要在启动时请求此 token ,因为它可能不需要,更糟糕的是,当需要时可能为零。

最佳答案

我认为最好还是在应用程序启动时注册推送通知。当您获得设备 token 时,您不必立即将其发送到您的服务器。您可以将其存储在设备本地。当您的逻辑需要将设备 token (以及其他设置)发送到您的服务器时,获取本地保存的 token 。如果保存的token为空,请尝试重新注册,并在获取到token后将其发送到您的服务器。

请注意,当应用程序启动时,即使您之前有本地存储的设备 token ,您也应该注册推送通知(因为 Apple 决定更改设备 token 的可能性很小)。

关于ios - 在没有网络连接的情况下处理 APNS 推送 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450759/

相关文章:

javascript - 应用程序被杀死时不会触发 onNotification()

ios - 自动完成自定义值而不保存数据

javascript - Cordova aerogear-push android推送未定义

iOS UIActivityIndi​​cator View 未出现在 WKWebKit View 中

android - 到目前为止,React Native 与 WPA 应用程序的体验

ios - URlRequest.httpBody 在 startLoading() 方法中是 nil swift 3.0 中的 URLProtocol

ios - 升级iOS应用程序

ios - 如何在应用程序处于后台时阅读通知?

ios - float 比较

ios - 无法按预期显示幻灯片菜单下方的状态栏