Flutter 使用 Firebase 推送通知(7)

作者 : 慕源网 本文共2214个字,预计阅读时间需要6分钟 发布时间: 2021-11-13 共358人阅读

介绍

在本文中,我们将学习如何在 Flutter 应用程序中集成 Firebase 推送通知。Firebase 提供云消息传递服务,也称为 Firebase 云消息传递 (FCM)。以前,此服务称为 Google Cloud Messaging (GCM)。所以不要混淆这个术语,基本上FCM是GCM的升级版。

那么让我们开始在 Flutter 中集成 FCM。我们需要的插件是 firebase_messaging。我们还需要设置一个 Firebase 项目。

必备条件(Firebase 项目设置)

要设置 Firebase 项目,请查看上一部分以了解如何为 Flutter 设置 Firebase。请注意,您只需执行前 2 个步骤。

步骤

第1步

按照必备条件创建一个新的 Flutter 项目并设置一个 Firebase 项目。

第2步

在 Flutter 项目中添加 firebase_messaging 依赖项。要添加依赖项,请打开位于项目根目录的 pubspec.yaml。检查下面的代码片段以获得更多理解。

dependencies:
 flutter:
sdk: flutter
 cupertino_icons: ^0.1.2
 firebase_messaging: ^5.1.1

 

第 3 步

在 main.dart 文件中导入 Firebase messaging 插件。

import’package:firebase_messaging/firebase_messaging.dart’;

第4步

如果您希望在用户点击系统托盘中的通知时在您的应用中收到通知(通过 onResume 和 onLaunch,见下文),请在您的 android/app/src/main 的 <activity> 标签中包含以下意图过滤器/AndroidManifest.xml,

<intent-filter>  
   <action android:name="FLUTTER_NOTIFICATION_CLICK" />  
   <category android:name="android.intent.category.DEFAULT" />  
</intent-filter> 

第 5 步

下面是 Flutter 中 Firebase 推送通知的实例化和实现。我们已经声明了 _firebaseMessagin 对象并实现了它的配置。

final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();  
final List<Notification> notifications = [];  
@override  
void initState() {  
  super.initState();  
  _firebaseMessaging.configure(  
    onMessage: (Map<String, dynamic> notification) async {  
      setState(() {  
        notifications.add(  
          Notification(  
            title: notification["notification"]["title"],  
            body: notification["notification"]["body"],  
            color: Colors.red,  
          ),  
        );  
      });  
    },  
    onLaunch: (Map<String, dynamic> notification) async {  
      setState(() {  
        notifications.add(  
          Notification(  
            title: notification["notification"]["title"],  
            body: notification["notification"]["body"],  
            color: Colors.green,  
          ),  
        );  
      });  
    },  
    onResume: (Map<String, dynamic> notification) async {  
      setState(() {  
        notifications.add(  
          Notification(  
            title: notification["notification"]["title"],  
            body: notification["notification"]["body"],  
            color: Colors.blue,  
          ),  
        );  
      });  
    },  
  );  

Firebase 消息传递配置包括 onMessage、onResume、onLaunch 等事件。

  1. onMessage
    如果应用程序已打开并且通知已发送,则将触发此事件。
  2. onResume
    如果应用程序在后台并且通知已发送,并且您通过通知点击打开应用程序,则将触发此事件。
  3. onLaunch
    如果应用程序关闭并发送通知,并且您通过通知点击打开应用程序,则将触发此事件。

第 6 步

获取通知许可。

_firebaseMessaging.requestNotificationPermissions();

第 7 步

从 Firebase 项目发送 Firebase 推送通知。转到 Firebase 项目,然后单击 Grow 选项下左侧菜单中的 Cloud Messaging 选项。您可以从那里创建您的第一个通知。

注意
您需要在附加选项自定义数据中传递 click_action 和 FLUTTER_NOTIFICATION_CLICK。

Flutter 使用 Firebase 推送通知(7)

我附上了本文的完整源代码和 git 存储库。

结论

在本文中,我们学习了如何在 Flutter 应用程序中集成 firebase 推送通知以及如何从 Firebase 广播推送通知。您还可以从服务器端以编程方式广播推送通知。


慕源网 » Flutter 使用 Firebase 推送通知(7)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录