首页 > 解决方案 > 我应该如何在颤动中访问通知有效负载的数据元素?

问题描述

以下是flutter应用程序中FCM通知的云功能中的通知有效负载,我无法弄清楚如何访问data:{}flutter应用程序中收到通知时的元素

有效载荷

const payload = {
                    notification: {
                      title: `NOTIFICATION2 `,
                      body: contentMessage,
                      badge: '1',
                      sound: 'default'
                    },
                    data: {
                             click_action: 'FLUTTER_NOTIFICATION_CLICK',
                             notification2: notificationid2,
                             detail: detail,
                             senderAvatarURL: messageRecieverSenderAvatar,
                             category: 'default'
                           }
                  }

通知代码

firebaseMessaging.configure(onMessage: (Map<String, dynamic> message) {

      print('onMessage: $message');
      Platform.isAndroid ? showNotification(message['notification']) : showNotification(message['aps']['alert']);
   
      return;
    }, onResume: (Map<String, dynamic> message) {
      print('onResume: $message');
      
      return;
    }, onLaunch: (Map<String, dynamic> message) {
      print('onLaunch: $message');
     
      return;
    });

标签: firebaseflutternotificationsgoogle-cloud-functionspayload

解决方案


您可以使用以下代码访问数据:

 if (message.containsKey('data')) {
    // Handle data message
    final dynamic data = message['data'];
 }

一旦你得到数据映射,你就可以解析它。

https://pub.dev/packages/firebase_messaging显示了处理数据消息的示例,检查带有标题的部分

  1. 定义一个 TOP-LEVEL 或 STATIC 函数来处理后台消息

推荐阅读