mkw*_*won 86 push-notification ios ios7
在WWDC 2013的"多任务新功能"演示中,有一个关于静音推送通知的部分.看起来很简单.根据演示文稿,如果您将APS有效负载仅发送到内容可用设置为1,则不会通知用户该通知.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试显示,这不起作用,因为没有收到推送.但是,如果我包含声音属性但排除了alert属性,它就会起作用(虽然不再是静音).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我更改声音属性以播放静音,我可以模仿静音.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Run Code Online (Sandbox Code Playgroud)
有人知道吗:
提前致谢.
编辑更多信息
对于A,应用程序的状态无关紧要.从未收到通知.
看起来B和C只有在将属性和值括在引号中时才有效,如下所示.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
Run Code Online (Sandbox Code Playgroud)
并且通知到达应用程序:didReceiveRemoteNotification:fetchCompletionHandler:无论状态如何.
CMV*_*MVR 70
这也有效,并且在它到达时不发出声音:
{
aps = {
"content-available" : 1,
sound : ""
};
}
Run Code Online (Sandbox Code Playgroud)
编辑
有此问题的人可能想查看此链接.我一直在Apple的开发者论坛上参与一个线程,该论坛遍及所有应用程序状态,并且收到静态推送但未收到.
小智 30
所以我昨天遇到了这个问题,在尝试发送声音设置为空字符串的有效载荷后,它仍然在设备上引起振动/声音.最后,我偶然发现了Urban Airship的一篇博文,建议需要发送:
{ priority: 5 }
Run Code Online (Sandbox Code Playgroud)
在推送通知中,我从未见过.仔细阅读Apple的推送通知文档后,我偶然发现了这个页面:
表示优先级应设置为"5"或"10",并说明:
通知的优先级.提供以下值之一:
10推送消息立即发送.
推送通知必须在设备上触发警报,声音或徽章.将此优先级用于仅包含内容可用密钥的推送是错误的.
5推送消息是在接收它的设备上保存电源的时间发送的.
最终,我们能够使用以下格式获得使用徽章计数的静音推送通知(我怀疑您甚至可以使用警报执行相同操作):
aps = {
badge = 7;
"content-available" = 1;
priority = 5;
};
Run Code Online (Sandbox Code Playgroud)
小智 10
我已经尝试将空字符串设置为alert属性,它也有效:
{
aps = {
"content-available" = 1;
"alert" = "";
};
}
Run Code Online (Sandbox Code Playgroud)
似乎APNS正在检查是否存在此属性以验证推送有效负载.有趣的是,他们没有检查实际内容.虽然看起来有点hacky ......
我使用工具 - Knuff将我的推送通知发送到我的设备.
然后,我尝试了这些例子.
他们都工作!但你必须设置优先级10!
因此,如果您不使用该工具,您也会注意到它.
{
"aps":{
"content-available":1,
}
}
Run Code Online (Sandbox Code Playgroud)
{
"aps":{
"content-available":1,
"alert":""
}
}
Run Code Online (Sandbox Code Playgroud)
{
"aps":{
"content-available":1,
"sound":""
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58243 次 |
最近记录: |