根据这个论坛帖子APNS 设备令牌创建后是否会更改?设备令牌可能已过期,或者 APNS 可能会更改设备令牌。我的问题是,如果服务器将这个过期的令牌发送给Apple,APNS是否会使用过期的令牌进行通知? APNS 可以将此过期令牌用于其他设备吗?
我从未遇到过过期的设备令牌,因此我无法根据我的个人经验告诉您。我也无法从 Apple 的 APNS 文档中告诉你,因为他们没有回答你的问题(而且我不止一次阅读了他们所有的 APNS 文档)。
无论您的问题的答案是什么,您的应用程序和服务器都应该能够处理设备令牌过期。
总是打电话registerForRemoteNotificationTypes
当您的应用程序启动时,如果设备令牌与您的应用程序在该设备上获得的最后一个设备令牌不同,则将设备令牌发送到服务器。
在您的服务器中为使用您的应用程序的每个设备分配另一个唯一标识符。让应用程序将该标识符与设备令牌一起发送到您的服务器。这样,如果设备令牌发生更改,您的服务器将知道这是现有设备的新设备令牌,而不是安装应用程序的新设备。
遵循#1和#2将确保您的服务器将拥有最近启动您的应用程序的每台设备的当前设备令牌(在最近未启动您的应用程序的设备上,用户可能不太关心您的应用程序,所以我不确定向他们发送推送通知会产生任何影响)。
如果您确实向旧设备令牌发送通知,并且有效,那么一切都很好。如果没有,您将收到“无效令牌”错误响应,或者您将在反馈服务中获取该设备令牌。在这两种情况中的任何一种情况下,您都应该停止向该令牌发送通知。
我假设 APNS 不会为其他设备重复使用过期的令牌,但如果确实如此,您的服务器可以使用我在 #2 中建议的唯一标识符来识别它。在这种情况下,请确保您的服务器仅将设备令牌分配给其他设备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)