【发布时间】:2014-10-10 11:33:24
【问题描述】:
据我所知,一旦我们从 APNS 获得了 device token,我们就无法再获得它。 (除非将数据备份到新设备或计算机,或重新安装操作系统或任何时候设备令牌发生更改,这将调用didRegisterForRemoteNotificationsWithDeviceToken)
所以,
每当设备令牌更改时,我都会替换并将新设备令牌保存在钥匙串中,以避免它因其他目的而消失(例如将设备令牌用于 UUID)。
-
钥匙串数据消失但设备令牌没有改变时是否可能?
(如果是,会导致
didRegisterForRemoteNotificationsWithDeviceToken不再被调用,无法取回最后一个设备token。) -
或者让钥匙串数据消失的事件也(通常)让设备令牌改变(或再次触发
didRegisterForRemoteNotificationsWithDeviceToken)?在我的测试中,
A. iPhone中的“重置所有设置”不会清除钥匙串数据并触发
didRegisterForRemoteNotificationsWithDeviceToken。B. iPhone 中的“删除所有内容和设置”将清除钥匙串数据并删除所有应用程序。因此,当重新安装将再次调用
didRegisterForRemoteNotificationsWithDeviceToken的应用程序时。情况 A 和 B 不会打扰我,我认为更新操作系统版本、重新安装操作系统或任何事件都会让设备令牌发生变化。
有人知道钥匙串和设备令牌之间正确对应的值变化状态吗?
谢谢!!
更新
问题是任何事件让钥匙串数据消失也(通常)再次触发“didRegisterForRemoteNotificationsWithDeviceToken”?
如果不是,是哪个事件?
【问题讨论】:
-
您可以在需要时获取设备令牌.. 并且在您需要时也调用了 didRegisterForRemoteNotificationsWithDeviceToken。
标签: ios objective-c apple-push-notifications keychain devicetoken