首次使用Flutter集成FCM,如何获取通知标题与消息内容?
如何在Flutter FCM的前台回调中获取通知标题和文本
嗨,很高兴你已经成功集成FCM并能收到自定义数据!其实要拿到通知的标题和消息文本很简单,核心是要了解FCM消息的结构:当你通过Firebase控制台发送通知时,消息里会包含两个主要部分——notification(存储标题、内容这些通知展示信息)和data(你的自定义数据)。
当应用处于前台时,FCM不会自动弹出系统通知,而是把完整的消息数据传递给onMessage回调,你只需要从message的notification字段里提取对应的内容就可以了。
给你修改后的代码示例:
_firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { // 从notification字段中提取标题和正文 final String? title = message['notification']?['title']; final String? body = message['notification']?['body']; // 提取你的自定义数据 final Map<String, dynamic>? customData = message['data']; // 打印或者处理这些内容 print('收到前台消息:'); print('标题: $title'); print('内容: $body'); print('自定义数据: $customData'); }, );
这里有个小提醒:如果是纯数据消息(也就是发送时只填了自定义数据,没填通知标题内容),那message['notification']会是null,所以用?来做空安全处理很重要,避免出现空指针异常。
另外,如果你发现还是拿不到通知内容,检查一下Firebase控制台的发送配置:确保你在通知编辑器里填写了“通知标题”和“通知正文”,而不是只填了自定义数据区的内容哦~
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

