我有一个使用推送通知的iOS应用程序,但有一段时间我没有收到我的设备上的通知,当我希望收到一个。我会收到所有后续通知。我确认我的后端确保所有通知都已成功发送。
所以我的问题是:APN 几乎 100%可靠,或者我是否应该因为间歇性的3G / wifi连接而错过了一些通知?
我认为APN可以作为排队系统使用,如果在最初几次内没有成功,则重试。
答案 0 :(得分:22)
APN服务会将消息排队 - 但Apple不保证所有消息的传递。当用户离线时,只有来自应用程序的 last 消息将保留在队列中。此外,旧邮件可能会被删除。
Local and Push Notification Programming Guide
Apple推送通知服务 包括默认的服务质量 执行a的(QoS)组件 存储转发功能。如果是APN 尝试发送通知但是 设备离线,QoS存储 通知。它只保留一个 每个申请的通知 device:收到的最后一个通知 来自该应用程序的提供者。 当离线设备以后 重新连接,QoS转发 存储了设备的通知。该 QoS保留了a的通知 在删除之前的有限时间。
答案 1 :(得分:1)
我有一个天蓝色的网站(以及移动服务,服务总线,数据库,活动目录等),它将推送通知发送到Windows手机和iPhone上的xamarin应用程序。两者都收到第一个通知。第二个通知仅由Windows手机接收,它不会进入iPhone。如果我发送另一个通知,则两者都会收到通知。所以我更多地研究了这个行为,发现如果我给机枪发一系列通知(每2秒手动输入一次),Windows手机就会收到它们,但iphone只收到第一个。但是,如果我等待一段时间并发送通知,则两台设备都会收到通知。下一个测试是查看是否始终收到通知,间隔为5分钟。发送两条消息,中间有五分钟的间隔,Windows Phone和iphone都收到了两个通知。