如何为拥有多个设备的用户管理 APN 令牌?

Posted

技术标签:

【中文标题】如何为拥有多个设备的用户管理 APN 令牌?【英文标题】:How to manage APN tokens for users with multiple devices? 【发布时间】:2020-08-29 01:35:35 【问题描述】:

我有一个关于在用户拥有多个设备时管理 APN 令牌的一般性问题。据我了解,APN 令牌会在重新安装应用程序、从备份中恢复设备以及重新安装手机操作系统时发生变化。 (免责声明我是移动开发新手)

在此示例情况下,用户同时使用 iPhone 和 iPad,并希望从两者上的应用接收推送通知。该应用程序要求用户创建一个帐户。与其帐户关联的设备令牌将存储在数据库中。我有一个关于以下情况的问题:如果用户在他们的 iPhone 上重新安装应用程序并且新的 APN 令牌被添加到数据库中。

如果我限制为用户存储的令牌数量,我如何知道要替换哪个令牌?我不确定是否可以检测到令牌来自的设备。如果我只是替换任何一个令牌,我就有可能覆盖 iPad 的令牌。 是否建议限制为用户存储的令牌数量?如果有大量用户并且每个用户有很多设备,我觉得它有可能占用大量空间 对于这种情况,推荐的令牌管理方法是什么?询问以防我的方法不是一个好主意

提前谢谢你!

【问题讨论】:

【参考方案1】:

当您调用Apple推送服务器API时,它可能会响应状态码410,表示设备不可访问(卸载?)。您可以安全地删除 410 响应的令牌。

410 The device token is no longer active for the topic.

参考:https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns

【讨论】:

以上是关于如何为拥有多个设备的用户管理 APN 令牌?的主要内容,如果未能解决你的问题,请参考以下文章

关于如何将 APN 的设备令牌链接到注册用户的建议(通过 phonegap 或 UIWebView)

为 APN 安全发送设备令牌

如何为 APN 标记化(.NET、C#)编码 JWT

iOS APN 推送通知 - 设备令牌

从 APN 迁移到 Firebase 后未重新生成 iOS 设备令牌

使用推送通知时如何获取用户设备令牌