我想确保我的服务器始终具有最新的APNS设备令牌,该令牌可以在特定情况下更改. 我应该将它保存到钥匙串,并在启动时检查它是否不同,然后如果是这样更新服务器? 这是最好的方式吗?
我应该将它保存到钥匙串,并在启动时检查它是否不同,然后如果是这样更新服务器?
这是最好的方式吗?
Apple实际上说不要在本地存储设备令牌.您需要设备令牌时调用registerForRemoteNotifications().来自Apple:永远不要缓存设备令牌;始终在需要时从系统获取令牌.如果您的应用先前已注册远程通知,则再次调用registerForRemoteNotifications方法不会产生任何额外开销,iOS会立即将现有设备令牌返回给您的应用代理.此外,iOS会在设备令牌更改时调用您的委托方法,而不仅仅是响应您的应用注册或重新注册.
因此,您需要做的是在启动时注册远程通知,并将该令牌发送到您的服务器.来自Apple:
设备令牌可以更改,因此您的应用程序需要在每次启动时重新注册,并将收到的令牌传递回您的服务器.
您可以在此处找到更多文档:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW25