我有一个iOS应用程序接收来自APNS的通知。如果我的用户删除了应用程序,则后端无法知道某个设备上没有安装该应用程序(设备令牌)。在这种情况下,尝试通过APNS推送时会生成什么错误代码,以便我可以从数据库中删除该条目?
答案 0 :(得分:3)
Apple在WWDC-2015中引入了一个Provider(您的后端服务器)API& 2016年增强,以便向服务器提供有关推送通知的更有价值的反馈。 Here is a transcript to that WWDC session.
来自成绩单:“如果设备令牌已被删除,您将收到状态为410或”已删除“的HTTP / 2响应。 它将在有效负载中有一个时间戳,指示APNS上次何时获知设备令牌已被删除。“
APNS服务器响应代码
现在我无法确认的是,如果iOS删除设备令牌,或者如果在不删除应用的情况下从应用设置中关闭通知设置,则会删除设备令牌。
“410表示已卸载应用程序。如果用户在应用程序设置中禁用通知警报,则令牌将保持活动状态。即使没有向用户显示警报,设备仍将收到通知。服务器将不知道是否用户已关闭通知提醒。只有应用知道这一点。“
感谢Marcus Adams对此表示质疑。
If required, Here is a Paid SDK that can help you with uninstallation tracking.