【发布时间】:2014-06-03 23:18:42
【问题描述】:
我正在为我们的 iPhone 应用测试 Apple 推送通知。应用部署目标是 6.1,iPhone 运行的是 7.1.1。我们使用 Apigee 作为我们的推送通知提供商。手机通过蜂窝网络和 wi-fi 在线时会收到通知,确认在应用程序端和 Apigee 端的注册是正确的。我打开飞行模式,从 Apigee 推送通知,等待 3 分钟,将手机退出飞行模式,手机从未收到推送通知。我等待几分钟(最多 30 分钟),然后从 Apigee 推送另一个通知,手机会收到通知。
我读过 Apple 的 Local and Push Notification Programming Guide 和 Technical Note TN2265 Troubleshooting Push Notifications。
根据故障排除指南,“由于您的设备未连接到服务,任何未立即发送的推送通知都将排队等待将来重新发送。“立即”当然需要考虑您的连接延迟。外围案例将超过 60 秒,因为此时 APN 将超时。”这就是我等待 3 分钟的原因。我也知道 APNS 将一条消息排队,我想我知道我没有覆盖该消息 - 除非 APNS QoS 队列的延迟/吞吐量比几分钟差得多。
在 Apigee 的“消息历史记录”中,我看到了手机离线时发送的通知。它的状态为已完成,发送总数:1,错误总数:0。我还在数据/收据下看到收据。这似乎表明 Apigee 已成功将通知发送到 APNS(但我不是 100% 确定)。我验证了来自 Apigee 的 notifierId 对于在线和离线时发送的所有通知都是相同的。
我可以使用什么技术来查看为什么没有从 APNS 传递通知?还有什么我可以检查的吗?
【问题讨论】:
标签: ios push-notification apple-push-notifications apigee