应用程序删除 - 推送通知失败时APNS对开发服务器的响应

时间:2016-11-29 14:50:40

标签: ios push-notification apple-push-notifications

我有一个iOS应用程序接收来自APNS的通知。如果我的用户删除了应用程序,则后端无法知道某个设备上没有安装该应用程序(设备令牌)。在这种情况下,尝试通过APNS推送时会生成什么错误代码,以便我可以从数据库中删除该条目?

1 个答案:

答案 0 :(得分:3)

Apple在WWDC-2015中引入了一个Provider(您的后端服务器)API& 2016年增强,以便向服务器提供有关推送通知的更有价值的反馈。 Here is a transcript to that WWDC session.

来自成绩单:“如果设备令牌已被删除,您将收到状态为410或”已删除“的HTTP / 2响应。 它将在有效负载中有一个时间戳,指示APNS上次何时获知设备令牌已被删除。“

APNS服务器响应代码

  • 200成功
  • 400错误请求
  • 403证书或提供商出错 身份验证令牌。
  • 405请求使用了bad:方法值。只有POST请求 支撑。
  • 410该主题的设备令牌不再有效。
  • 413通知有效负载太大。
  • 429服务器收到太多关于同一设备令牌的请求。
  • 500内部服务器错误
  • 503服务器正在关闭且无法使用。

现在我无法确认的是,如果iOS删除设备令牌,或者如果在不删除应用的情况下从应用设置中关闭通知设置,则会删除设备令牌。
“410表示已卸载应用程序。如果用户在应用程序设置中禁用通知警报,则令牌将保持活动状态。即使没有向用户显示警报,设备仍将收到通知。服务器将不知道是否用户已关闭通知提醒。只有应用知道这一点。“ 感谢Marcus Adams对此表示质疑。

这里是Apple Developer Guide!!!

If required, Here is a Paid SDK that can help you with uninstallation tracking.