【问题标题】:Handling Firebase Data push notification in flutter在颤动中处理 Firebase 数据推送通知
【发布时间】:2020-03-19 18:05:32
【问题描述】:

我想从 firebase 向 Flutter 应用发送数据类型推送通知。根据文档,我们需要处理这些类型的通知,以便在通知中心显示它们。但是没有文件说明我们如何做到这一点。

在 Flutter 中处理数据类型推送通知是否可行?有人试过onbackgroundMessage函数实现吗?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    使用official firebase_messaging library 来使用推送通知,您也可以在那里找到不错的文档。 您可以像这样接收数据或通知负载,

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

     Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) {
       if (message.containsKey('data')) {
         // Handle data message
         final dynamic data = message['data'];
       }
    
       if (message.containsKey('notification')) {
         // Handle notification message
         final dynamic notification = message['notification'];
       }
    
       // Or do other work.
     }
    

    在调用配置时设置 onBackgroundMessage 处理程序

     _firebaseMessaging.configure(
           onMessage: (Map<String, dynamic> message) async {
             print("onMessage: $message");
             _showItemDialog(message);
           },
           onBackgroundMessage: myBackgroundMessageHandler,
           onLaunch: (Map<String, dynamic> message) async {
             print("onLaunch: $message");
             _navigateToItemDetail(message);
           },
           onResume: (Map<String, dynamic> message) async {
             print("onResume: $message");
             _navigateToItemDetail(message);
           },
         );
    

    要显示本地通知,请使用 flutter_local_notifications 这个库,

    var androidPlatformChannelSpecifics = AndroidNotificationDetails(
        'your channel id', 'your channel name', 'your channel description',
        importance: Importance.Max, priority: Priority.High, ticker: 'ticker');
    
    var iOSPlatformChannelSpecifics = IOSNotificationDetails();
    
    var platformChannelSpecifics = NotificationDetails(
        androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    
    await flutterLocalNotificationsPlugin.show(
        0, 'plain title', 'plain body', platformChannelSpecifics,
        payload: 'item x');
    

    【讨论】:

    • 来自 myBackgroundMessageHandler ,如何通过声音和自定义按钮将消息发送到通知托盘?
    • @max 检查我编辑的答案,以及更多关于本地通知真实this
    猜你喜欢
    • 2020-06-26
    • 2021-01-25
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多