ios - 推送通知 : Associating a device token with a device

标签 ios push-notification apple-push-notifications

当出现这种情况时,我的应用程序当前正在接收与之前的应用程序用户帐户关联的推送通知:

  1. 玩家安装应用程序并注册为“bob”
  2. bob 的设备 token 在网络服务中注册
  3. 玩家重新安装了应用程序并注册为“phil”(在同一台设备上)
  4. phil 的设备 token 在网络服务中注册

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

如果我使用 UDID,我可以确保每台设备只注册一个设备 token ,因此从玩家的旧网络服务帐户“bob”中删除 UDID 和设备 token ,从而确保每台设备只有一个事件帐户。当玩家注册为“phil”并且网络服务器可以看到玩家已经注册了一个具有相同 UDID 的新帐户,然后从具有该 UDID 的任何旧帐户(即“bob”)中删除 UDID 和设备 token 时,就会发生这种情况帐户)。在有人再次登录该帐户(在同一设备或新设备上)之前,不会向 bob 帐户发送更多推送通知。

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

如何确保只为当前登录的用户接收推送通知?或者,换句话说,我如何确保我的网络服务器只为每台设备存储一个设备 token ?

最佳答案

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

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

关于ios - 推送通知 : Associating a device token with a device,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070102/

相关文章:

ios - 将一系列不同的 SKAction 应用于不同的 SKNode

android - Phonegap- 支持推送通知

ios - 除非在 TestFlight 或 AppStore 上,否则推送通知不起作用

ios - UITableViewCell 不水平裁剪内容

ios - Unicode 规范化不适用于 ASCII-8BIT

objective-c - 将属性公开为只读

push-notification - ios8的解析推送通知中没有声音

java - 使用java为windows phone 7发送推送通知

ios - App在后台时,APNS token是否发生变化或失效?

ios - 从网络服务器(ASIHTTPRequest、PHP、mysql)更新 iOS TableView 单元格中的数据