如何识别APNs中用户设备卸载重装后的失效device token?
iOS推送通知:识别并删除失效Device Token的方案
核心可通过三种方式组合处理:
利用APNs反馈机制批量清理
APNs会维护失效Device Token列表(覆盖卸载、重装、系统变更等导致的失效场景),你可以定时拉取该列表(AWS SNS会同步此反馈数据,可通过API或控制台获取失效端点),将列表中的token与数据库记录匹配后批量删除失效条目。绑定用户ID+设备唯一标识精准替换
在iOS端获取identifierForVendor(同一开发者账号下,设备卸载重装应用后该值不会改变,除非用户删除了该账号下所有应用),用户开启推送时,将用户ID + 设备标识 + 新Device Token关联存储到数据库。当用户重装应用生成新token时,数据库中同一用户ID+设备标识对应的旧token可直接被识别,删除旧token并保存新token即可。注意:若用户删除了该开发者账号下所有应用,
identifierForVendor会重置,此时必须结合用户登录态才能保证关联准确性。推送失败时实时清理
向某个Device Token推送通知时,若APNs返回Unregistered错误(HTTP状态码410),说明该token已失效,需立即从数据库中删除对应记录。这种方式能实时处理单个失效token,避免无效推送占用资源。
最优实践
组合三种方式:用设备标识绑定实现新token替换旧token,用APNs反馈机制批量清理遗漏的失效token,用推送失败回调处理实时失效情况,可最大程度保证数据库中Device Token的有效性。
内容的提问来源于stack exchange,提问作者Samuel Davies
相关产品推荐
相关产品推荐

