use*_*596 2 push-notification apple-push-notifications ios
我有一个 iOS 应用程序,可以接收来自 APNS 的通知。如果我的用户删除该应用程序,后端将无法知道该应用程序未安装在某个设备(设备令牌)上。在这种情况下,尝试通过 APNS 推送时会生成什么错误代码,以便我可以从数据库中删除该条目?
Apple 在 WWDC-2015 中引入了一个 Provider(您的后端服务器)API,并在 2016 年进行了增强,以便向服务器提供有关推送通知的更有价值的反馈。以下是 WWDC 会议的文字记录。
从文字记录来看: “如果设备令牌已被删除,您将收到状态为 410 或“已删除”的 HTTP/2 响应。有效负载中将有一个时间戳,指示 APNS 上次获知设备令牌已被删除的时间”。
APNS 服务器响应代码
现在我无法向您确认的是,如果应用程序被删除,或者从应用程序设置中关闭通知设置而不删除应用程序,iOS 是否会删除设备令牌。
“410 确实意味着应用程序已卸载。如果用户在应用程序设置中禁用通知警报,令牌将保持活动状态。即使没有向用户显示警报,设备仍将收到通知。服务器将不知道是否用户已关闭通知提醒。只有应用程序知道这一点。”
感谢马库斯·亚当斯澄清了这个疑问。