未调用 Flutter Firebase 消息传递 iOS 处理程序

Posted

技术标签:

【中文标题】未调用 Flutter Firebase 消息传递 iOS 处理程序【英文标题】:Flutter Firebase Messaging iOS Handlers not called 【发布时间】:2019-11-08 05:41:18 【问题描述】:

我已经在我的 Flutter 应用中实现了最新的 Firebase Messaging 5.0.4。

但是我注意到在 ios 上它没有按预期工作。 它的实现如下:

_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async 
    print("onMessage: $message");
    _showItemDialog(message);
  ,
  onLaunch: (Map<String, dynamic> message) async 
    print("onLaunch: $message");
    _navigateToPage(message);
  ,
  onResume: (Map<String, dynamic> message) async 
    print("onResume: $message");
    _navigateToPage(message);
  ,
);

尤其是 onLaunch 和 onResume 是个问题。

在 iOS 上,onLaunch 和 onResume 会在应用程序处于后台时触发,或者在您单击收到的通知时终止。在控制台中,我还可以看到打印的信息以及附加到“消息”的所有信息,但是打印语句下面的功能根本不执行。 在 android 上,它可以按您的预期工作。信息打印到控制台并执行以下功能。

【问题讨论】:

【参考方案1】:

我不确定发生了什么,但它现在似乎有效。 但是,我注意到 Google 处理通知的方式与 Apple 有所不同。推送通知中的数据略有不同。

【讨论】:

以上是关于未调用 Flutter Firebase 消息传递 iOS 处理程序的主要内容,如果未能解决你的问题,请参考以下文章

Flutter firebase消息传递未收到通知

Flutter Firebase 消息传递 - 应用打开时未显示推送通知

带有 Firebase 云消息传递的 Flutter 2.0:onMessage 未在 Android 上调用

Flutter 和 FCM(Firebase 云消息传递)onMessage、onResume 和 onLaunch 在单击通知时未触发(包:firebase_messaging 7.0.0)

如何在 Flutter 中删除 Firebase 云消息传递令牌

使用 Firebase 云消息传递 (FCM) 时未调用 AppDelegate 方法