我遇到一个问题,用户在卸载并重新安装我的应用程序后开始收到两次通知,因为该设备向我的服务器发送了2个不同的APNS token -一个来自第一次安装,另一个来自重新安装应用程序之后。由于 token 不同,所以我不知道这是同一台设备。

在iOS 9发布之前,每次我卸载并重新安装该应用程序时,我总是得到相同的APNS,因此很容易知道这与用户以前使用的设备相同。从iOS 9开始,似乎每次安装都更改了APNS token 。

我的问题是如何判断客户端是否卸载并重新安装了该应用程序,以及更新其APNS token 而不是添加新 token ?

我想问的是,这听起来像大多数iOS开发人员必须处理的事情,但我找不到Apple如何解决此问题的最佳实践,因此我希望其他人可以分享他们在此问题上的经验。

最佳答案

这就是我们最终解决它的方式:

在每次启动应用程序时:

  • 创建推送通知 token
  • localstorage中是否有 token ?
  • 是-将 token 与本地存储进行比较。他们是相同的吗?
  • 是-返回
  • 否-使用新 token 更新服务器,并且服务器响应后单击“确定”,将其本地保存在本地存储和钥匙串(keychain)中
  • 否-检查钥匙串(keychain)中是否有 token
  • 是-将 token 与钥匙串(keychain)进行比较。他们是相同的吗?
  • 是-将 token 保存在本地存储中并返回
  • 否-使用新 token 更新服务器,并且服务器响应后单击“确定”,将其本地保存在本地
    存储和钥匙串(keychain)
  • 否-使用新 token 更新服务器,并且服务器响应后单击“确定”,将其本地保存在本地存储和钥匙串(keychain)中

  • 如果有人有更优雅的解决方法,我很想听听

    10-07 19:43
    查看更多