【问题标题】:Is the device token as unique as the device ID?设备令牌是否与设备 ID 一样唯一?
【发布时间】:2011-10-19 02:42:44
【问题描述】:

如果我们重置 iPhone,设备 ID 保持不变。设备令牌是否相同?

【问题讨论】:

  • 看看[这个关于SO的问题][1] [1]:stackoverflow.com/questions/3726107/…
  • 一般来说,UDID 不应该用于任何目的,所以这时候 token 就派上用场了。
  • 但是如果有人重置它是 iPhone,设备令牌会改变吗?或者它是由苹果从 UDID 生成的?
  • 我从来没有考虑过,但如果它与 UDID 相同,那么它可能不应该改变。

标签: iphone ios devicetoken


【解决方案1】:

我假设您指的是可用于方法的设备令牌,例如

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

如果是这种情况,那么不,设备令牌可以并且会改变

引自苹果Local and Push Notification Programming Guide

通过在每次启动应用程序时请求设备令牌并将其传递给提供者,您可以帮助确保提供者拥有设备的当前令牌。如果用户将备份恢复到创建备份的设备以外的设备(例如,用户将数据迁移到新设备),他或她必须至少启动一次应用程序才能再次接收通知。如果用户将备份数据恢复到新设备或重新安装操作系统,则设备令牌会更改。此外,切勿缓存设备令牌并将其提供给您的提供商;始终在需要时从系统中获取令牌

我还可以验证这种行为,因为我使用Urban Airship 作为我的通知提供者,尽管到目前为止我只使用过一个测试设备,但我的帐户中注册了许多设备令牌。

【讨论】:

  • “永远不要缓存设备令牌并将其提供给您的提供商;始终在需要时从系统获取令牌”,问题是,您从哪里获得设备令牌。您必须将其存储在本地并检查令牌是否与原始令牌不同(Rayswenderich 在他的教程中使用此方法。
  • 这句话直接取自 Apple 的本地和推送通知编程指南。绝对不需要缓存令牌;您只需在每次启动应用时向 Apple 索取,然后将其发送到您的推送提供商。
【解决方案2】:

设备令牌是唯一的 ID,但会发生变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多