在 WWDC 2013 的“多任务处理新功能”演示文稿中,有一节是关于静默推送通知的。看起来很简单。根据演示文稿,如果您发送 APS 有效负载,并且仅将 content-available 设置为 1,用户将不会收到通知。
// 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"
}
}
有没有人知道:
- 如果这是一个错误?
- 假设 B 或 C 被视为远程通知是否正确(而不是需要声音属性的 Silent Push 的错误)?如果是这样,这意味着它不像 Silent Pushes 那样受到速率限制......Apple 可能会修复。所以我可能不应该依赖它。
- 速率限制是多少(每 X 秒推送 N 次,等等)?
提前致谢。
编辑更多信息
对于A来说,应用的状态并不重要。从未收到通知。
似乎 B 和 C 只有在将属性和值括在引号中时才有效,如下所示。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
通知到达application:didReceiveRemoteNotification:fetchCompletionHandler:,无论状态如何。
最佳答案
这也有效,并且在它到达时不播放声音:
{
aps = {
"content-available" : 1,
sound : ""
};
}
编辑
有此问题的人可能想查看 this link .我一直在参与 Apple 开发者论坛上的一个线程,该线程遍历所有应用程序状态以及何时收到和未收到静默推送。
关于ios - iOS 7 中的静默推送通知不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239737/