苹果推送通知令牌是不是会随着 iOS 更新而改变?

Posted

技术标签:

【中文标题】苹果推送通知令牌是不是会随着 iOS 更新而改变?【英文标题】:Does apple push notification token change with iOS update?苹果推送通知令牌是否会随着 iOS 更新而改变? 【发布时间】:2013-11-18 15:32:09 【问题描述】:

我正在使用 PhoneGap 开发 ios 应用程序。我使用 PhoneGap 推送通知插件来集成推送通知。因此,当用户在我的数据库中启动应用程序时,我已经记录了用户 ID 和通知令牌 ID。最近我意识到同一用户有多个令牌 ID。

我想知道这是因为 iOS 更新。 (最近他们发布了iOS 7.0、7.0.1、7.0.2等几个更新。)

谁能确认一下?如果不是这种情况,谁能给我一些想法或可能的理由来更改 APNS 令牌?

谢谢

【问题讨论】:

我发现这个线程更相关 - ***.com/questions/6652242/… 【参考方案1】:

是的,安装新的 iOS 版本会更改设备的设备令牌。甚至在 iOS7 之前也是如此。

此外,我读到从 iOS7 开始,每个应用程序都会为同一设备获取唯一的设备令牌(iOS7 之前的版本不是这种情况),但为了向后兼容,旧设备令牌仍然有效(直到您开始使用新设备令牌发送消息)。这可以解释您的用户收到重复消息。

您应该处理设备的设备令牌更改的情况。由于您已经有一个用户 ID 来识别用户,因此您可以轻松确保为每个用户保留一个设备令牌。

【讨论】:

这是有道理的。谢谢你。我真的按照你说的做了。但问题是如果某些用户使用两个 iOS 设备。由于 iOS 新应用提交规则不允许访问/使用 UDID。 developer.apple.com/news/index.php?id=3212013a 在这种情况下很难跟踪不同的设备令牌。 @user1692043 如果您想支持具有多个设备的用户,我建议您的服务器为每个设备生成一个唯一的设备标识符,并且该标识符应该与您数据库中的设备令牌相关联。此 ID 应存储在设备的外部存储中(在应用程序的安装和卸载之间存在)。当您收到具有现有设备 ID 的新设备令牌时,您修改现有设备令牌而不是创建新设备令牌。【参考方案2】:

不同的 iOS 设备会有不同的推送通知令牌。会不会是某些用户使用了不止一台 iOS 设备? iPhone、iPod Touch、iPad?

【讨论】:

是的,可能。但是这里有些用户报告说他们多次收到相同的通知。当我研究 tjos 的数据库时,我发现这些用户在数据库中有多个令牌 ID。

以上是关于苹果推送通知令牌是不是会随着 iOS 更新而改变?的主要内容,如果未能解决你的问题,请参考以下文章

Ionic iOS Cordova 推送令牌

ios 13 推送通知设备令牌

Apple 推送通知令牌

从苹果推送通知服务向服务器发送设备令牌

在 React Native 中更新推送通知令牌

Firebase 网络推送通知令牌未获得