我有一个使用fcm实现的应用程序。在所有情况下,我都能收到推送通知,效果很好。但是如果应用终止或被用户杀死,则不会调用didReceiveRemoteNotification
。如果应用程序在后台或地面运行,则正在调用。应用已终止,通知即将到来,但didReceiveRemoteNotification:fetchCompletionHandler
没有呼叫。
我的问题是什么是触发方法应用程序终止并收到Firebase通知。我使用了Swift 4.2和Xcode 10.0。我启用了后台模式-功能的远程通知。
使用Firebase,我发送以下JSON:
{
"to": "/topics/group1",
"priority" : "high",
"content-available": true,
"notification" : {
"body" : "Yes you recevied !",
"sound": "default",
"title" : "Notification"
},
"data": {
"type" : "IOS"
}
}
答案 0 :(得分:1)
来自Apple docs:
但是,如果用户强制退出应用程序,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序。
您实际上可以通过启用VoIP后台模式来解决问题,但这会减少您在应用商店中通过审核的机会。
答案 1 :(得分:0)
您的内容键/值不正确。密钥是content_available
(下划线,而不是破折号),值是布尔值,而不是字符串:
{
"to": "/topics/group1",
"priority" : "high",
"content_available": true, // <= CHANGED
"notification" : {
"body" : "Yes you recevied !",
"sound": "default",
"title" : "Notification"
},
"data": {
"type" : "IOS"
}
}