我有一个从 APNS 接收通知的 iOS 应用。如果我的用户删除了该应用程序,则后端无法知道该应用程序未安装在某个设备(设备 token )上。在这种情况下,尝试通过 APNS 推送时会生成什么错误代码,以便我可以从数据库中删除条目?
Best Answer-推荐答案 strong>
Apple 在 WWDC-2015 中引入并在 2016 年增强了一个 Provider(您的后端服务器)API,以便向服务器提供有关推送通知的更有值(value)的反馈。 Here is a transcript to that WWDC session.
来自脚本:“如果设备 token 已被删除,您将收到状态为 410 或“已删除”的 HTTP/2 响应。
它将在有效负载中包含一个时间戳,指示 APNS 上次得知设备 token 已被删除的时间。”
APNS 服务器响应代码
- 200 次成功
- 400 错误请求
- 403 证书或提供程序出错
身份验证 token 。
- 405 请求使用了错误的 :method 值。只有 POST 请求是
支持。
- 410 设备 token 对该主题不再有效。
- 413 通知负载过大。
- 429 服务器收到过多对同一设备 token 的请求。
- 500 内部服务器错误
- 503 服务器正在关闭且不可用。
现在我无法向您确认的是,如果 iOS 删除了设备 token ,如果应用被删除,或者通知设置在应用设置中关闭而不删除应用。
“410 确实意味着应用程序已卸载。如果用户在应用程序设置中禁用通知警报, token 将保持事件状态。即使没有向用户显示警报,设备仍会收到通知。服务器将不知道是否用户已关闭通知提醒。只有应用知道这一点。"
感谢 Marcus Adams 澄清了这个疑问。
这里是 Apple Developer Guide!!!
If required, Here is a Paid SDK that can help you with uninstallation tracking.
关于ios - 应用程序删除 - 推送通知失败时 APNS 对开发服务器的响应,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40868844/
|