2016-03-08 48 views
1

我在基于swift的iOS应用程序中使用Amazon SNS进行移动推送通知和AWS SDK。一切都很好,但是当我禁用iOS设置的通知时,我注意到了一些奇怪的行为,然后关闭了设置中我的应用程序条目下的通知。如果我关闭通知,则AWS SNS控制台上的已启用标志仍设置为true当iOS设置中的通知更改时,Amazon SNS如何禁用/重新启用设备?

在某些情况下,启用标志将正确翻转至。在这些情况下,当我尝试在iOS设置中重新启用通知时,启用标志从不翻转回true。任何想法为什么发生这种情况?无论如何要实现这个设置适当的实时?

在此先感谢。

回答

1

有亚马逊SNS和设备之间没有相互作用,SNS只与平台提供商(GCM,APNS,百度,WMS等)

端点可以在亚马逊SNS成为残疾人有以下几个原因相互作用:

  1. 设备令牌已更改,您尚未使用新令牌更新端点。在这种情况下,推送通知将失败,因为当前端点令牌无效。基于APNS反馈,端点将被设置为DISABLED。设备令牌可以改变,如果:

    • 应用程序版本升级时,我
    • IOS版本升级,或
    • 潜在如果装置被复位。

这里的建议是由新鲜获得与一个保存在NSUserDefaults的商店令牌匹配,如果不同,以验证您的应用程序在启动时令牌变化,更新SNS端点后本地更新。

这可能是为什么当您重新启用设备设置的通知“ 启用的标志将永远翻转回真正”。

  1. 设备所有者已删除应用程序,并且未安装该应用程序时,会向设备发送SNS通知。此时,APNS会提供无效令牌的反馈,并且端点会被SNS禁用。由于禁用端点的APNS回调的异步性质,这可能需要长达24小时。

  2. 将SNS通知发送到端点,并使用未针对应用程序或环境生成的令牌。例如,端点是手动生成的,并且是64长度的有效十六进制字符的随机组合。

  3. 如果发送到应用程序的SANDBOX(APNS_SANBOX)环境的有效令牌的SNS通知被无意中发送到PRODUCTION(APNS)环境。在这种情况下,SNS接受令牌,但在第一次推送通知时失败,并且基于APNS反馈终端将被禁用。

Rohan共享的blog post是移动令牌管理的一个很好的资源。

2

亚马逊SNS禁止端点响应来自APNS的反馈,指示推送令牌无效。 SNS不知道在设备上执行什么操作来使标记无效;它只是根据APNS feedback messages设置状态。

您应该查看Mobile Token Management博客文章,了解处理禁用端点的详细信息和最佳做法。

相关问题