我在iOS上使用静默通知时遇到问题。
当我的应用程序在后台时,我没有收到FCM发送的静音通知,但如果我尝试直接发送到APNS,通知会成功接收。
这是发送给FCM的JSON:
{
"to" : "<token>",
"priority": "high",
"content_available": true,
"data" : {
"<key>" : "<string>",
"<key2>" : "<string>"
}
}
这是直接发送到APNS的JSON:
{
"aps": {
"content-available": 1
},
"<key>": "<string>",
"<key>": "<string>"
}
我已经试过删除“priority”键了,因为我看到有人说如果已经设置了“content_available”,就不应该设置优先级。
1.我在XCode〉功能中启用了“推送通知”。
1.我在XCode〉Capabilities的后台模式中选中了“远程通知”。
1.当应用程序在前台时,FCM通知工作正常,有时当应用程序在后台时。
5条答案
按热度按时间kkbh8khc1#
删除**“通知”键值对并添加“内容_可用”:真实**
它看起来像这样
这应该使它成为一个静默APNS,您需要使用相应的APNS委托方法进行处理。
您需要通过委托来处理此问题。有关详细信息,请参阅此firebase文档:https://firebase.google.com/docs/cloud-messaging/concept-options
irlmq6kh2#
我找到了一个变通办法。我在“通知”字段中为“声音”设置了一个空值,即使应用程序在后台运行,静音通知也会发送。
我的直觉是,苹果不允许“高”优先级的静音通知和某种“通知”:{“sound”:“"}欺骗APNS该通知不是无声通知。
ep6jt1vc3#
我正在使用nodejs开发Firebase静默推送通知。当我尝试下面的代码时,它工作正常。当我添加“优先级”时:“高”和“可用内容”:正确,给出以下错误。
在以下代码下工作
在消息对象中添加priority和content_available时出错
nwlqm0z14#
如果你使用的是云函数,我发现了很多的资料,甚至是官方文档中已经过时的,或者是不同的打字界面。
这对我来说终于起作用了。与其设置
alert: ""
,不如 leave it out,它是可选的。对于自定义属性,您可以添加到message.apns.payload。fcmToken应该是用户设备上的令牌。yrefmtwq5#
请按照documentation for server side并按照文档中的说明设置json。我以前遇到过类似的问题,并在本文档中解决了这个问题。
content_available = true并且body、title为空执行任务。