大多数文档建议在启动时注册远程通知,并在收到 token 后,使用任何其他特定于应用程序的设置(例如用户、应用程序内推送设置)将其推送到服务器。但是,我不确定如何处理以下极端情况。
如果用户在没有连接的情况下启动应用程序,则不会收到 token 。片刻之后,连接恢复。用户尝试更改应用程序中的某些设置,这应该提示向我的服务器发送帖子,包括设置和 token 。然而,代币仍然为零。
每次尝试发布设置之前都注册通知不是更好吗?似乎没有必要在启动时请求此 token ,因为它可能不需要,更糟糕的是,当需要时可能为零。
最佳答案
我认为最好还是在应用程序启动时注册推送通知。当您获得设备 token 时,您不必立即将其发送到您的服务器。您可以将其存储在设备本地。当您的逻辑需要将设备 token (以及其他设置)发送到您的服务器时,获取本地保存的 token 。如果保存的token为空,请尝试重新注册,并在获取到token后将其发送到您的服务器。
请注意,当应用程序启动时,即使您之前有本地存储的设备 token ,您也应该注册推送通知(因为 Apple 决定更改设备 token 的可能性很小)。
关于ios - 在没有网络连接的情况下处理 APNS 推送 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450759/