未调用didReceiveRemoteNotification,应用被杀死时

时间:2018-11-05 12:08:32

标签: ios swift firebase firebase-cloud-messaging swift4.2

我有一个使用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"
    }
}

2 个答案:

答案 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"
    }
}