我正在为我们的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。
根据问题排查指南,"由于您的设备未连接到该服务,因此未立即发送的任何推送通知都会排队等待将来重新发送。 "紧接"当然需要考虑您的连接延迟。由于APN将在那时超时,外围病例将超过60秒。"这就是我等了3分钟的原因。我也知道APNS排队一条消息,我想我知道我没有覆盖那条消息 - 除非APNS QoS队列的延迟/吞吐量比几分钟差很多。
在Apigee中,在消息历史记录中,我看到手机离线时发送的通知。它的状态为已完成,已发送总数:1,总错误:0。我还在数据/收据下看到收据。这似乎表明Apigee已成功将通知发送给APNS(但我并非100%确定)。我确认Apigee的notifierId对于在线和离线时发送的所有通知都是相同的。
我是否可以使用任何技术来查看APNS未发送通知的原因?还有什么我可以检查的吗?
答案 0 :(得分:1)
你是对的,如果通知没有显示错误并且创建了收据,则该消息已正确传递给APNS。
我能想到的任何可能影响你的交付的APNS本身变幻莫测的事情就是你设置过期"过期"您的通知中的财产。您是否试图了解这是否会对您的结果产生任何影响?