在WWDC 2013的“多任务处理的新功能”演示文稿中,有一个关于静默推送通知的部分。它似乎很简单。根据演示文稿,如果您发送的APS有效负载仅将内容可用设置为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才起作用,如下所示。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
并且通知到达应用程序:didReceiveRemote teNotify:fetchCompletionHandler:无论状态如何。
我尝试过将空字符串设置为警报属性,它也起到了作用:
{
aps = {
"content-available" = 1;
"alert" = "";
};
}
似乎APNS正在检查这些属性是否存在,以验证推送负载。有趣的是,他们没有检查实际内容。不过看起来有点不太对劲。。。
所以我昨天刚刚遇到这个问题,在尝试发送一个声音设置为空字符串的有效载荷后,它仍然会在设备上引起振动/声音。最终,我无意中发现了一篇来自城市飞艇的博文,其中建议需要发送:
{ priority: 5 }
在我从未见过的消息推送中。在仔细阅读Apple的文档以获取推送通知后,我偶然发现了这个页面:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html
指示优先级应设置为“5”或“10”,并解释:
通知的优先级。提供以下值之一:
10推送消息立即发送。
消息推送必须在设备上触发警报、声音或徽章。将此优先级用于仅包含内容可用密钥的推送是错误的。
5推送消息在接收它的设备上节省电力的时间发送。
最终,我们能够获得使用徽章计数的静默推送通知(我怀疑您甚至可以使用警报进行同样的操作),格式如下:
aps = {
badge = 7;
"content-available" = 1;
priority = 5;
};
它也可以工作,到达时不会发出声音:
{
aps = {
"content-available" : 1,
sound : ""
};
}
编辑
有此问题的人可能想查看此链接。我一直在参与Apple开发者论坛上的一个主题,该主题涵盖所有应用程序状态以及何时收到和未收到静默推送。
此代码未生成推送。 //自定义通知视图RemoteViews contentView=新建RemoteViews(getPackageName(),r.layout.custom_push);ContentView.SetImageViewResource(r.id.image,r.mipmap.ic_launcher);contentview.settextviewtext(r.id.title
问题内容: 我需要处理推送通知,这是通过较低版本的ios完成的,但是在ios 11中,从未收到任何推送通知。我使用Firebase Cloud Messaging。请任何人有解决方案,然后请分享。 问题答案: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UI
问题内容: 我只想知道如何确定在无提示推送中要执行的操作: 这是我发送给客户的: 现在的问题是,当我添加以确定静默推送是为了让“订单更新”显示警报通知时。 问题答案: 有一些选择!让我们花点时间了解所有不同的有效负载及其用法。 简单有效载荷 显示在通知中心:是 唤醒应用以执行后台任务:否 带有自定义通知声音的有效负载 显示在通知中心:是 唤醒应用以执行后台任务:否 :在您的应用程序包中添加自定义通
我已经实现了静默推送通知。如果我手动关闭应用程序,它将不起作用。在收到静默推送通知后,我调用了一个函数,将数据发送到服务器。 这是我的无声推送通知代码 请指引我。 更新:-如果用户在应用程序切换器中手动关闭了应用程序,则无法通过静默通知或后台获取启动应用程序。要获得通知,用户必须再次启动应用程序。如果有人需要激活该应用程序,那么应该为该应用程序(如whatsapp)启用PushKit VOIP,请
我们用FCM创建了一个带有通知的聊天应用程序,我的代码是正确的,我的设备也得到了推送通知数据,但一些中国制造的设备,如vivo、oppo、一加、小米,不允许通知显示,除非我在各自厂商的受保护的应用程序列表中添加应用程序。他们有没有办法解决这个问题。 https://hackernoon.com/notifications-in-android-are-horribly-broken-b8dbec6
首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w