【问题标题】:iOS not receiving notifications from Firebase Cloud MessagingiOS 未收到来自 Firebase 云消息传递的通知
【发布时间】:2017-05-05 16:54:39
【问题描述】:

我希望推送通知仅包含标题。当我从 Firebase 控制台发送消息时,它可以工作,但是当我尝试通过 API 执行相同操作时,它不适用于 iOS(在 Android 上可以正常工作)。

编辑:我想要完成的是仅在应用程序未打开时显示在通知抽屉中的通知中显示标题。如果添加了正文,则会显示在通知中的标题下方。

这是我要发送的推送通知:

{
    "to": "/topics/breaking",
    "priority":"high",
    "notification": {
        "title":"Dette er en test"
    }
}

我什么也得不到

如果我在通知中添加正文:

{
    "to": "/topics/breaking",
    "priority":"high",
    "notification": {
        "title":"Dette er en test",
        "body":"hello"
    }
}

我得到这个作为回报

{
    aps = {
        alert = {
            body = Hello;
            title = "Dette er en test";
        };
    };
    "gcm.message_id" = "xxxxxxx";
}

这是打印我收到的内容的代码:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
    self.parseNotification(application, userInfo: userInfo as NSDictionary!)
}

func parseNotification(_ application: UIApplication, userInfo: NSDictionary!) {

    print(userInfo)
}

如何在不向请求添加正文的情况下在 iOS 上获取通知?

【问题讨论】:

  • 解析 userInfo 时为什么不直接忽略 body?
  • 问题是应用未打开时通知抽屉中显示的通知。它应该只包含标题。
  • 啊。所以您的意思是顶部横幅仅在应用未打开时显示?
  • 如果这就是你的意思,这就是 iOS 的行为。当您的应用程序处于前台/活动状态时,您必须使用自定义视图来模拟横幅行为。对于 iOS 9,您可以使用 UNUserNotifications
  • @ZonilyJame 试过了。看起来有点奇怪。

标签: ios swift push-notification apple-push-notifications firebase-cloud-messaging


【解决方案1】:

我想通了!

如果我删除标题并只发布正文,它会起作用。

{
    "to": "/topics/breaking",
    "priority":"high",
    "notification": {
        "body": "Dette er en test"
    }
}

【讨论】:

  • 所以如果你只发布正文。正文会成为标题本身吗?
  • 有点。通知中的标题文本是粗体的,但我们今天使用的(在切换到 FCM 之前)显然是正文,所以它有效。
  • 很奇怪,但它确实有效。我会记下这一点,以备将来努力
【解决方案2】:

请尝试为推送通知添加证书:用于开发和生产。

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2020-06-16
    • 2019-02-06
    • 2022-07-20
    • 2020-01-02
    • 2020-07-28
    • 2017-12-24
    • 1970-01-01
    • 2019-10-08
    相关资源
    最近更新 更多