当收到应用程序终止时的推送通知时,我正在尝试更新我的应用程序的徽章计数。
如果应用程序在后台,Firebase消息后台处理程序可以正常工作,但在应用程序终止时不工作。
我已经阅读了文档:
在iOS上,如果用户从应用Switcher中刷走应用程序,则必须再次手动重新打开应用程序,以便后台消息重新开始工作。
这是否意味着在iOS上无法使用firebase后台处理程序更新徽章计数(当然,根据您在处理程序中实现的逻辑,只需要调用处理程序(?
现在任何应用程序都会这样做,所以我想知道为什么Firebase Messaging无法做到这一点。
我实际上已经找到了一个解决方案,通过在swift中使用服务扩展,并将数据作为有效负载服务器端,在python中使用content-available: true
。
以下是我为实现通知服务器端而遵循的文档。
此外,关于这个案例,还有一个关于flutter和Firebase的bug/功能请求正在进行中。
我为我的案例找到了解决方案。我使用Node.js发送通知
来自苹果官方文档
你应该使用
{
"aps" : {
"content-available" : 1
},
}
在我的例子中,从节点JS Admin设置"content available":1就成功了。此处为代码示例。
参考:https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app#2980040
const message = {
apns: {
payload: {
aps: {
'content-available': 1
}
}
},
data: {foo:'foo'},
notification:{
title: title,
body: text
},
token: pushToken,
};