在哪个移动平台上,“推送令牌”不是永久性的?

时间:2013-05-07 14:54:24

标签: android ios windows-phone-7 blackberry push-notification

我们都知道,为了在任何移动平台中使用推送通知功能,我们需要一个名为“推送令牌”的唯一标识符。

开发人员需要以某种方式将此“令牌”保存到他的服务器,以便能够向用户发送通知。

然而,在哪个移动平台上,这个“令牌”将保持永久性并且可能会改变?

换句话说,在哪些情况下,如果发生变化,开发人员必须注意更新数据库中的用户“令牌”?

答案应包括: iOS Android WP BB 平台。

* 如果您知道这些平台中至少有一个答案会发布您的答案,最后我会总结所有答案以获得完整的答案。*

3 个答案:

答案 0 :(得分:4)

Token绝不永久。

在iOS中,设备令牌对于设备上的所有应用程序都是相同的。实际上,在升级iOS版本或从备份恢复设备之前,它保持不变。从理论上讲,Apple说它可能会随时改变,所以你应该处理这种情况。

  

通过请求设备令牌并将其传递给提供者   您的应用程序启动时,您可以帮助确保提供程序   拥有设备的当前令牌。如果用户将备份还原到   设备或计算机,而不是为其创建备份的设备或计算机   (例如,用户将数据迁移到新设备或计算机),他   或者她必须至少启动一次申请才能收到   再次通知。如果用户将备份数据还原到新设备   或计算机,或重新安装操作系统,设备令牌   变化。此外,永远不要缓存设备令牌并将其提供给您   供应商;始终在需要时从系统获取令牌。   如果您的申请已经注册,请致电   registerForRemoteNotificationTypes:操作系统中的结果   将设备令牌立即传递给代理人而不会产生任何影响   额外的开销。

在Android中,同一设备上的每个应用程序的注册ID都不同。当您从GCM取消注册您的应用程序然后重新注册它时,它有时会发生变化。但是,旧的注册ID通常用于向应用程序发送GCM消息(在这种情况下,您将在响应中获得规范的注册ID,要求您使用最新的注册ID)。也就是说,Google还声称注册ID可能随时更改,因此您应该处理此案例。

  

请注意,Google可能会定期刷新注册ID,所以您   应该设计你的Android应用程序,了解   可以调用com.google.android.c2dm.intent.REGISTRATION意图   多次。您的Android应用程序需要能够响应   相应

     

注册ID会一直持续到Android应用程序   取消注册,或直到Google刷新注册ID   你的Android应用程序。

在Windows Phone中,我不确定通知频道URI在实践中的变化频率,但微软也声称它可能会随时更改。

  

所有应用都应注册ChannelUriUpdated事件,以防万一   推送通知URI更改。即使你已经拥有一个频道   打开后,您应该注册ChannelUriUpdated事件以防万一   URI更改。

总而言之,您应始终将Token视为在重新启动应用程序时可能会发生变化。

答案 1 :(得分:1)

在Android中,如果您使用的是Google云消息,则会更改

  

请注意,Google可能会定期刷新注册ID,所以您   应该在理解的情况下设计您的Android应用程序   可以调用com.google.android.c2dm.intent.REGISTRATION意图   多次。

可以找到有关GCM的完整说明here

答案 2 :(得分:1)

对于IOS,正如你在这里看到的那样

Does the APNS device token ever change, once created?

在这里

Apple Documentation ApplePushService

  

如果用户将备份数据还原到新设备或重新安装   操作系统,设备令牌发生变化。

按照EasyAPNS说明(www.easyapns.com),每次应用程序启动时,您都可以检查令牌是否已注册,并最终注册该设备。