// A. This doesn't work
{
aps: {
content-available: 1
}
}
我的测试显示这不起作用,因为没有收到推送。但是如果我包括声音属性但不包括警报属性,它就可以工作(虽然不再是静音的)。
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
然而,如果我将声音属性更改为播放静音音频,则可以模拟静默推送。
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
有人知道吗:
- 这是一个bug吗?
- 如果B或C被视为远程通知(而不是需要声音属性的静默推送的错误),那么这是否正确?如果是,这意味着它不像Silent Pushes那样受到速率限制...这是苹果可能会修复的。因此,我可能不应该依赖它。
- 速率限制是什么(每个X秒的N次推送等)?
使用更多信息进行编辑
对于A,应用程序的状态并不重要。永远不会收到通知。
如果您在引号中括住属性和值,似乎B和C才可以正常工作,如下所示。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
无论应用程序处于什么状态,通知都会在 application:didReceiveRemoteNotification:fetchCompletionHandler: 中到达。
项目能力
>后台模式
中的后台获取
复选框,因为第一个选项应该可以工作。静默推送不需要声音属性,并且始终在application:didReceiveRemoteNotification:fetchCompletionHandler:
中到达,即使应用程序在后台/前台运行或未运行。 - IgniteCoders