在 WWDC 2013年的“多任务最新消息”演示文稿中,有一个关于静默推送通知的部分。看起来很直接。根据演示文稿,如果您发送的 APS 有效负载仅将可用内容设置为1,则不会通知用户。
// 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"
}
}
有人知道吗:
先谢谢你。
编辑更多信息
对于 A,应用程序的状态并不重要。从不接收通知。
似乎 B 和 C 只有在将属性和值用引号括起来时才有效,如下所示。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
不管状态如何,通知到达 Application: did ReceiveRemoteNotification: fetchCompletionHandler:。