【问题标题】:iOS 10 Firebase Notification not showing on backgroundiOS 10 Firebase 通知未在后台显示
【发布时间】:2016-09-27 20:35:32
【问题描述】:

我在运行 iOS 10 的特定设备上接收推送通知(背景)时遇到问题。其他运行 iOS 9 的手机运行良好。

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

阅读 firebase 文档让我有些困惑

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

// 如果您在应用运行时收到通知消息 背景,//在用户点击之前不会触发此回调 在启动应用程序的通知上。 // TODO: 处理数据 通知

所以如果我的应用程序在后台,Apple 不是做了所有事情来制作默认的 iOS 通知吗? content_available 值是否会对此产生干扰?我还发送通知和数据值。

这是我发送的 JSON 示例:

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

预期的行为是:

  1. 应用死机:系统会显示通知
  2. 应用后台:系统会显示通知并调用 didReceiveRemoteNotification 方法。
  3. 应用处于活动状态:系统不会显示取消通知并调用 didReceiveRemoteNotification 方法。

对吗?

【问题讨论】:

  • 您找到解决方案了吗?

标签: ios firebase notifications apple-push-notifications firebase-notifications


【解决方案1】:

您的假设是正确的,除了第 2 点。在某些情况下,即使您设置了 content_avaialable,Apple 也不会调用 didReceiveRemoteNotification。

1) 设备电量不足且处于节电模式

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

3) 苹果决定不唤醒您的应用的其他未记录场景。 Apple 保留出于性能原因不发送通知的权利。

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

【讨论】:

  • 圣母!几个世纪以来,我一直禁用我的背景刷新功能,然后忘记了它……为这个问题苦苦挣扎……
猜你喜欢
  • 2020-04-26
  • 2021-07-27
  • 2020-02-14
  • 2019-08-05
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多