【发布时间】:2017-07-12 17:07:19
【问题描述】:
我正在向我的应用程序添加推送通知,并且我知道我需要将设备令牌存储在我的数据库中,以便我可以将推送通知发送到特定设备(或所有设备)。
我的问题是维护这些设备令牌的最佳做法是什么?我可以存储收到的所有设备令牌,但如何检测和删除不再有效的旧设备令牌?我假设如果用户删除应用程序,或者如果用户关闭应用程序的通知,设备令牌可能会变得无效。
更新 - 进行用户身份验证并将其链接到设备令牌(并基于登录/注销进行更新)是有意义的。但是如果用户删除了应用程序呢?没有注销,那如何移除设备令牌?
【问题讨论】:
-
如果您的应用程序使用用户身份验证,那么您在身份验证时存储在服务器上,当用户注销时,您代表任何唯一 ID 从服务器中删除。如果不是,请说明您的应用功能
-
这对于注销是有意义的,但是如果用户删除了应用程序怎么办?那么我们如何移除设备令牌呢?
-
您的应用服务器不会知道某个特定应用是否已被强制删除,并且您的服务器仍然会说令牌 T1 映射到已删除的应用/设备,比如 A1。现在,另一个有效用户 (A2) 可能会使用相同的设备令牌 T1。您只需确保在任何时间点一个设备令牌(即 T1)仅映射到一个设备(提供最新 T1 的设备)。此时应删除所有其他较旧的设备令牌映射,即 A1-T1,否则 A2 可能会收到 A1 的通知。
-
@Ayush 是对的
标签: ios swift apple-push-notifications