我正在开发一个iOS应用程序,其中我实现了推送通知。 一切都很好。 但只是想问一下我的Apple设备的设备令牌是否会改变?
我们还需要互联网连接来生成设备令牌。
谢谢
答案 0 :(得分:5)
我的Apple设备的设备令牌将永远改变
- 是的。如果将备份数据还原到新设备或重新安装操作系统,则设备令牌会更改。所以我的建议是用令牌
更新服务器我们是否需要互联网连接来生成设备令牌
- 据我所知,是的。注册用户时,请调用推送通知的注册方法。成功注册时调用委托方法 -
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
表示您已成功注册推送通知或其调用失败 -
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
表示无法注册通知。
您可以通过关闭网络并运行您的应用程序来检查它。
答案 1 :(得分:2)
根据Apple文档,答案是肯定的:
此阶段信令的形式确保仅生成APN 它后来会尊重的标记,它可以保证一个 设备传递给它的令牌与之前的令牌相同 为该特定设备配置 - 仅适用于该设备。
如果用户将备份数据还原到新设备或重新安装 操作系统,设备令牌发生变化。
答案 2 :(得分:0)
来自apple docs -
设备令牌是您在特定设备上向应用发送推送通知的关键。设备令牌可以更改,因此您的应用程序需要在每次启动时重新注册,并将收到的令牌传递回您的服务器。如果您无法更新设备令牌,则远程通知可能无法进入用户的设备。
当用户将备份数据还原到新设备或计算机或重新安装操作系统时,设备令牌始终会更改。将数据迁移到新设备或计算机时,用户必须先启动您的应用,然后才能将远程通知发送到该设备。
永远不要缓存设备令牌;始终在需要时从系统获取令牌。如果您的应用先前已注册远程通知,则再次调用 registerForRemoteNotifications 方法不会产生任何额外开销,iOS会立即将现有设备令牌返回给您的应用代理。此外,iOS会在设备令牌更改时调用您的委托方法,而不仅仅是响应您的应用注册或重新注册。
了解更多APNS Doc