我们都知道,要想在任何移动平台使用推送通知功能,我们需要一个叫做“推送令牌”唯一标识符。
开发人员需要以某种方式保存该“令牌”,以他的服务器,以便能够将通知发送给用户。
但是在移动平台这个“令牌”将保持永久性的,在它可能会改变?
换句话说,在这种情况下,开发商必须小心在更新数据库中的用户“令牌”如果曾经改变?
答案应包括: 的iOS, 安卓 ,WP,BB平台。
*如果你知道这些平台中的至少一个答案张贴您的答案,最后我会总结所有的答案有一个完整的答案。*
我们都知道,要想在任何移动平台使用推送通知功能,我们需要一个叫做“推送令牌”唯一标识符。
开发人员需要以某种方式保存该“令牌”,以他的服务器,以便能够将通知发送给用户。
但是在移动平台这个“令牌”将保持永久性的,在它可能会改变?
换句话说,在这种情况下,开发商必须小心在更新数据库中的用户“令牌”如果曾经改变?
答案应包括: 的iOS, 安卓 ,WP,BB平台。
*如果你知道这些平台中的至少一个答案张贴您的答案,最后我会总结所有的答案有一个完整的答案。*
该Token
是从来没有永久的。
在iOS系统中,设备标识是设备上的所有应用程序相同。 在实践中,它保持不变,直到你升级你的iOS版本,或从备份恢复您的设备。 理论上说,苹果可能随时更改,所以你要处理这种情况。
通过请求设备令牌,它每一次传递给供应商应用程序启动时,你帮助,以确保供应商对设备的当前令牌。 如果用户恢复备份到一个设备或比备份是为创建一个其他计算机(例如,用户将数据迁移到新设备或电脑),他或她必须启动应用程序至少一次为它再次收到通知。 如果用户的备份数据恢复到新的设备或计算机,或重新安装操作系统时,设备令牌的变化。 此外,从来没有缓存的设备令牌并给予你的供应商; 总是从系统中获得令牌,只要你需要它。 如果您的应用程序之前注册的,要求registerForRemoteNotificationTypes:在操作系统中通过设备令牌委托结果立即而不会产生额外的开销。
在Android中,登记ID是用于在同一装置上的每个应用程序不同。 它有时会发生变化,当你从GCM注销您的应用程序,然后重新注册。 然而,旧的注册ID通常适用于发送GCM讯息给应用程式(你会得到一个规范的注册ID,在这种情况下,响应,要求您使用最新的注册ID)。 也就是说,谷歌还声称注册ID可能会随时改变,所以你应该处理这种情况。
请注意,谷歌可能会定期刷新的注册ID,所以你应该设计自己用的是com.google.android.c2dm.intent.REGISTRATION意图可能被多次调用的理解Android应用程序。 你的Android应用程序需要能够作出相应的反应。
注册ID持续到Android应用程序明确注销本身,或直到谷歌刷新你的Android应用程序的注册ID。
在Windows Phone的,我不知道多久会通知通道URI改变做法,但微软还声称它可以随时更改。
所有的应用程序应该在的情况下为ChannelUriUpdated事件注册推送通知URI变化。 即使你已经有一个通道打开,你应该为ChannelUriUpdated事件的情况下,URI改变注册。
总之,你应该总是将Token
,就好像它可能会改变您重新启动应用程序的任何时间。
在Android中,如果您使用的是谷歌云消息将改变
请注意,谷歌可能会定期刷新的注册ID,所以你应该设计自己用的是com.google.android.c2dm.intent.REGISTRATION意图可能被多次调用的理解Android应用程序。
关于GCM的完整描述,可以发现这里
FOR IOS,你可以在这里看到
是否APNS设备令牌不断改变,一旦创造出来的?
和这里
苹果文档ApplePushService
如果用户的备份数据恢复到新的设备或重新安装操作系统时,设备令牌的变化。
继EasyAPNS指令( www.easyapns.com ),每一个应用程序启动时,你可以检查令牌被登记,并最终注册设备的时间。