use*_*097 8 iphone notifications push-notification apple-push-notifications ios
我们对iOS推送通知相对较新,而且与Apple一样,我对解决方案的优雅感到印象深刻,但对于该功能行为的一些不透明的"幕后"管理也略有激怒.
我的问题是: 成功收到约.10个单独的静音推送通知,每小时一个,在我们的测试用户最终打开之前,我们的测试应用程序不再提供.基于此,如果确定应用未被使用,iOS可能会停止提供静默推送通知.这是预期的行为吗?有没有人知道关于Apple使用的启发式的粗略细节?
有兴趣者的测试详情
仅供参考,我们的测试设置如下:
application:didReceiveRemoteNotification:fetchCompletionHandler委托方法为iOS7构建)结果:
通知格式(手动复制,原谅任何错误):
aps = {
badge = 2;
"content-available" = 1;
};
Run Code Online (Sandbox Code Playgroud)
几个月前我对我的应用程序的推送功能做了很多测试,这里有一些我的经验:
- Apple 推送通知并不关心您的应用程序是否正在使用。
- APNS 不是 100% 可靠,影响最大的因素是网络质量(您的服务器到 APN 服务器,APN 服务器到您的设备)。
- 我在 3 分钟内向 iphone4s 推送了 10,000 条通知,设备收到了超过 95% 的通知。因此,以每小时 1 条的速度发送 10 条单独的静默推送通知毫无压力。
现在,就您的问题进行一些讨论:
第一:应该意识到通知的第一个接收者是系统,而不是您的应用程序。
如果您的应用程序不在前台,则应用程序的 application:didReceiveRemoteNotification:fetchCompletionHandler 将永远不会被调用,直到您的应用程序再次进入前台。因此,您的“写入日志并向我们的后端服务器发出简单的请求”操作不适合“记录已发生的事件”。
我认为没有一个好方法来“记录所有发生的事件”,除非您的应用程序始终位于前台。
BTW:当您测试推送时,如果设备没有很快收到通知,您可以更改设备的网络(或关闭然后打开网络),有时,通知很快就会到来。