关于 Apple APNS 的说明

Posted

技术标签:

【中文标题】关于 Apple APNS 的说明【英文标题】:Clarification on Apple APNS 【发布时间】:2012-08-24 07:27:39 【问题描述】:

APNS 反馈服务是否考虑了所有可能导致通知传递失败的原因。失败可能有多种原因,例如

a. The user has uninstalled the application.

b. The device is switched off for a longer duration.

c. The device does not have internet connection.

“反馈服务”上的苹果文档说

“如果提供商尝试向应用程序发送推送通知,但该应用程序已不再存在于设备上,则设备会将这一事实报告给 Apple Push Notification Service。这种情况通常发生在用户卸载应用程序时”

这似乎表明 APNS 只会使已卸载应用程序的设备失效。谁能澄清我的假设是否正确?

APNS 在将设备列入反馈服务黑名单之前尝试传递通知多少次?

【问题讨论】:

【参考方案1】:

如您所说,反馈服务只会返回已卸载应用的设备令牌。

关于情况b和c:

b) 和 c),取自 official Push Notification guide 的 服务质量 部分,其中声明如下:

Apple 推送通知服务包含默认的服务质量 (QoS) 组件,执行存储和转发功能。

如果 APNs 尝试发送通知但设备处于离线状态, QoS 存储通知。

它只为设备上的每个应用程序保留一个通知:最后一个 从该应用程序的提供者处收到通知。

当离线设备稍后重新连接时,QoS 转发存储的 通知设备。 QoS 保留一个通知 删除之前的有限时间。

我相信这回答了这些问题;关于“被列入黑名单之前的尝试次数” - 我真诚地怀疑你会找到任何具体的数字。 (否则人们会将它们用作解决方法)

在完成消息传递后,我强烈建议您连接到反馈服务,查看是否有任何令牌被拒绝,然后立即从您的数据库中删除这些令牌。希望这会有所帮助!

【讨论】:

以上是关于关于 Apple APNS 的说明的主要内容,如果未能解决你的问题,请参考以下文章

如何在调用 API 时向 APNS 发送推送证书?

使用 Apple 的推送通知服务 (APNS) 避免重复

使用 APNS 的 Apple 推送通知是不是免费?

Apple 的 APNS 交付有时很慢

iOS - 从 APNS 重新发送 Apple 推送通知

APNS Apple 推送通知服务未收到来自 Apple 的成功消息