【发布时间】:2015-02-14 07:54:04
【问题描述】:
我的应用通过推送通知执行静默后台获取。一切正常,当用户在过去 60 分钟内打开应用程序或在 60 分钟内发送了推送通知时,从我们的服务器发送的推送通知会按预期触发后台静默获取 - 即使设备已锁定。
但是,当用户在 2-3 小时内未打开应用程序或在 2-3 小时内未发送推送通知时,应用程序不会收到推送通知。我一直在记录应用活动,并且我已经确认:
didReceiveRemoteNotification:fetchCompletionHandler:
未在应用委托上调用。
更多事实:
- 在应用程序的 plist.info 中,我已将 UIRequiresPersistentWiFi 设置为 true,并将 UIBackgroundModes 设置为(仅)远程通知
- 推送通知负载仅包含内容可用密钥
- 在闲置 2-3 小时后(未发送推送通知或未发送用户活动),我在运行 iOS 8.1.2 的 iPhone 5 和仅支持 Wifi 的 iPad 2 上看到了相同的结果。换句话说,互联网连接是蜂窝网络还是 Wifi 并不重要。
- 我认为我没有达到速率限制,因为我每小时每台设备最多只能发送 1-2 条推送通知。
我的理解是,iOS 应该继续在后台唤醒应用程序并使其能够处理来自推送通知的后台获取 - 即使在数小时不活动之后(只要设备处于唤醒状态并且具有互联网连接) .
我想知道是否有其他人经历过这种情况,如果有,您是否找到了解决方法。
提前致谢!
【问题讨论】:
-
我们也有类似的问题。如果我在较长时间不活动后发送 "content-available":1 通知,它会被忽略。但是,如果我发送“常规”通知,它会出现在手机上。我真的找不到模式,因为例如我在一夜之间留下了两部手机,其中一部回应了,而另一部则没有。您是否设法找到导致问题的进一步原因?
-
大家找到解决方案了吗?我也有同样的问题...
-
@Jacob,您是否尝试发送带有空“声音”键的有效负载?这通常有效
-
@Sega-Zero 我发送了“”作为声音键,是的。
-
尝试发送带有 0 标记(或之前设置的数字)的有效负载,然后内容可用。希望这会强制将有效负载发送到应用程序。
标签: ios background notifications push