在 WWDC 2013 的“What's New with Multitasking”演示文稿中,有一个关于静默推送通知的部分。这似乎是直截了当的。根据介绍,如果您仅在 content-available 设置为 1 的情况下发送 APS 有效负载,用户将不会收到通知。
// A. This doesn't work
{
aps: {
content-available: 1
}
}
我的测试表明这不起作用,因为没有收到推送。但是,如果我包含 sound 属性但排除 alert 属性,它会起作用(尽管不再静音)。
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
但是,如果我将声音属性更改为播放无声音频,我可以模仿无声推动。
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
有人知道吗:
- 如果这是一个错误?
- 如果假设 B 或 C 被视为远程通知是正确的(而不是需要声音属性的静默推送错误)?如果是这样,这意味着它不会像 Silent Pushes 那样受到速率限制……Apple 可能会解决这个问题。所以我可能不应该依赖它。
- 速率限制是多少(每 X 秒推送 N 次,等等)?
提前致谢。
编辑更多信息
对于 A,应用程序的状态无关紧要。从未收到通知。
似乎 B 和 C 仅在将属性和值括在引号中时才有效,如下所示。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
并且无论状态如何,通知都会到达application:didReceiveRemoteNotification:fetchCompletionHandler:。