繁体   English   中英

推送通知:将设备令牌与设备相关联

[英]Push Notifications: Associating a device token with a device

发生这种情况时,我的应用当前正在接收与上一个应用用户帐户相关联的推送通知:

  1. 播放器安装应用并注册为“ bob”
  2. bob的设备令牌已在Web服务中注册
  3. 播放器重新安装了应用并注册为“ phil”(在同一设备上)
  4. phil的设备令牌已通过Web服务注册

即使玩家现在以“ phil”身份登录,他们仍将继续收到与“ bob”以及“ phil”相关联的帐户的推送通知。

如果我使用的是UDID,则可以确保每个设备仅注册一个设备令牌,因此可以从播放器的旧Web服务帐户“ bob”中删除UDID和设备令牌,从而确保每个设备仅一个活动帐户。 当玩家注册为“ phil”并且网络服务器可以看到玩家已使用相同的UDID注册了一个新帐户,然后从任何具有该UDID的旧帐户中删除UDID和设备令牌(即“ bob”)时,就会发生这种情况帐户)。 除非有人再次登录该帐户(在同一设备上,或在另一台设备上),否则不会将任何推送通知发送到bob帐户。

但是,这在使用CFUDIDCreate时效果不佳,因为安装之间可能会发生变化。

如何确保仅收到当前登录用户的推送通知? 或者,换句话说,如何确保我的Web服务器每个设备仅存储一个设备令牌?

您可以将APNS令牌设为关键服务器端,而不是设备特定的标识符。 重新安装应用程序时,您将现有记录(APNS令牌,“ bob”)替换为(APNS令牌,“ phil”),从而在重新安装应用程序时删除了令牌和bob帐户之间的链接。

据我所知,APNS令牌在重新安装应用程序之间不会更改,因此应该可以使用。 (如果确实在将来的iOS版本中的重新安装之间进行了更改,这将不是问题,因为旧令牌将不再有效,因此该设备将不会收到发送给bob的通知)。

在重新安装应用程序的情况下,生成的设备令牌是否与以前相同? 我觉得不行。 您在服务器上注册了两个不同的设备令牌,一个用于“ bob”,另一个用于“ phil”?

在这种情况下,令牌指向'bob'是无效的,您可以使用APNS反馈服务对其进行过滤,该服务会不断更新,“使用按应用程序列出的尝试交付失败的设备列表。提供商应以二进制格式编码的设备令牌来标识。提供商应定期查询反馈服务,以获取其应用程序的设备令牌列表,每个设备令牌均由其主题标识。然后,在确认最近未重新使用该应用程序后,在已标识的设备上注册后,提供商应停止向这些设备发送通知。”

祝好运!

在iOS 9.x之后,设备令牌在每次安装该应用程序时始终是唯一的。 您可以将UUId令牌保存到钥匙串。 即使重新安装应用程序,钥匙串也始终持有令牌。 您可以在此处找到钥匙串文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM