Flutter - myBackgroundMessageHandler 从未在推送通知中调用

Posted

技术标签:

【中文标题】Flutter - myBackgroundMessageHandler 从未在推送通知中调用【英文标题】:Flutter - myBackgroundMessageHandler never called in push notification 【发布时间】:2021-02-24 13:33:25 【问题描述】:

我正在使用带有 firebase 的 firebase_messaging 库在颤动中推送通知。文档说 myBackgroundMessageHandler 在应用程序处于后台时被调用。但这并没有发生。

我想在显示通知之前对其标题和正文进行格式化。当应用程序在后台但未调用该特定方法时,我会收到通知。目前它只显示后端在标题和正文中发送的确切文本。 我需要做些什么来启用(?)这个方法吗?我在我的 fcm.configure 方法中有它:

_fcm.configure(
    onBackgroundMessage: myBackgroundMessageHandler,
)
static Future<Map<String, dynamic>> myBackgroundMessageHandler(Map<dynamic, dynamic> message) async 
  //some code here
  return message;

提前致谢!

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。 onBackgroundMessage 显然为数据消息触发。

在这里查看区别: https://firebase.google.com/docs/cloud-messaging/concept-options

使用 FCM,您可以向客户端发送两种类型的消息:

通知消息,有时被认为是“显示消息”。 这些由 FCM SDK 自动处理。 数据消息,其中 由客户端应用处理。

在我的情况下,我必须删除通知(主题、正文等),而且还要完全像 bigpicture 一样设置样式。尝试只发送一个数据对象。

【讨论】:

感谢您的回复。我试过这个,但是当我只发送数据对象时,onMessage、onLaunch 和 onResume 方法没有按预期调用。无论如何,我试图使用 myBackgroundMessageHandler 方法,因为我必须本地化通知。我这样解决了:***.com/a/64825247/6393618

以上是关于Flutter - myBackgroundMessageHandler 从未在推送通知中调用的主要内容,如果未能解决你的问题,请参考以下文章

[Flutter] flutter项目一直卡在 Running Gradle task 'assembleDebug'...

flutter 日志输出,Flutter打印日志,flutter log,flutter 真机日志

Flutter开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )

flutter与原生混编(iOS)

Flutter-布局

如何解决flutter gradle build error?C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991