iOS 10 Firebase通知未在背景上显示

我在运行iOS 10的特定设备上接收推送通知(后台)时遇到了麻烦.其他配备iOS 9的手机也没问题.

虽然如果我打开应用程序,通知会显示我实施的横幅.为什么在背景状态下不显示任何内容?

阅读firebase文档的东西让我有点困惑

根据以下链接https://github.com/firebase/quickstart-ios/blob/master/messaging/FCMSwift/AppDelegate.swift上的github firebase示例,didReceiveRemoteNotification方法中有一条注释说:

// If you are receiving a notification message while your app is in
the background, // this callback will not be fired till the user taps
on the notification launching the application. // TODO: Handle data of
notification

所以它我的应用程序是在后台,苹果不做整个事情来制作默认的iOS通知?
 content_available值是否会干扰这个?我还发送通知和数据值.

以下是我发送的JSON示例:

{
    "content_available": true,
    "priority": "high",
    "data": {
        "post_id": "...",
        "push_id": "..."
    },
    "notification": {
        "title": "...",
        "body": "..."
    },
    "registration_ids": ["xxxx"]
}

预期的行为是:

> App dead:系统将显示通知
>应用程序背景:系统将显示通知并调用didReceiveRemoteNotification方法.
>应用程序处于活动状态:系统不会显示de通知并调用didReceiveRemoteNotification方法.

对?

最佳答案 除了数字2之外,您的假设是正确的.有几种情况下,即使您设置了content_avaialable,apple也不会调用didReceiveRemoteNotification.

1)设备电池电量低,处于省电模式

2)应用已禁用“后台应用刷新”

3)其他未记录的情况,苹果决定不唤醒你的应用程序. Apple保留出于性能原因不发送通知的权利.

话虽如此,如果用户点击通知,您将始终在didReceiveRemoteNotification中获取有效负载.

点赞