【发布时间】:2013-11-18 11:34:03
【问题描述】:
我们对 iOS 推送通知还比较陌生,与 Apple 一样,该解决方案的优雅给我留下了深刻的印象,但也对该功能的一些不透明的“幕后”管理感到有点愤怒行为。
我的问题是这样的: 10 个单独的静默推送通知,以每小时 1 个的速度发送,直到最终由我们的测试用户打开后,才向我们的测试应用程序发送更多通知。基于此,如果 iOS 确定某个应用未在使用中,它似乎可能会停止发送静默推送通知。这是预期的行为吗?有谁知道 Apple 为此使用的启发式算法的任何粗略细节?
感兴趣的测试详情
仅供参考,我们的测试设置如下:
- 我们构建了一个简单的 Notification 测试应用(使用
application:didReceiveRemoteNotification:fetchCompletionHandler委托方法为 iOS7 构建) - 在测试期间,我们测试的 iPhone 5 上的应用在后台一直处于暂停状态(有时在办公室使用 wifi,有时在伦敦及其周边地区使用 3G)。
- 我们有一个使用 Grocer gem 的简单 Ruby 脚本(顺便说一句,这似乎非常好)通过 Apple 的沙盒 APNS 网关每小时向应用程序发送静默推送通知。
- 当应用收到通知时,它会唤醒,写入日志并向我们的后端服务器发出一个简单的请求,该服务器也会记录已发生的事件。
结果:
- 在前 10 个小时内一切正常。在此之后,该应用不再收到任何通知。
通知格式(手动复制,如有错误请见谅):
aps = {
badge = 2;
"content-available" = 1;
};
【问题讨论】:
-
好的,有人刚刚问我们为什么要设置徽章,这是一个有效的问题。这样做也不是我们的意图,但似乎我们一直在使用徽章 = 2 运行测试。我们将在没有徽章的情况下重复测试。一旦我们完成了测试,我会更新,但同时有兴趣听到任何其他 cmet。
标签: ios iphone notifications push-notification apple-push-notifications