Flutter 中的推送通知:Firebase Cloud Messaging 集成

Flutter 中的推送通知:Firebase Cloud Messaging 集成

5 回复

集成FCM,配置AndroidManifest.xml和firebase.json,使用flutter_fcm等插件接收通知。

更多关于Flutter 中的推送通知:Firebase Cloud Messaging 集成的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中集成 Firebase Cloud Messaging 实现推送通知,需添加 firebase_messaging 插件,配置 Firebase 项目,并在应用中处理消息接收和显示。

在 Flutter 中集成 Firebase Cloud Messaging (FCM) 实现推送通知,步骤如下:

  1. 添加依赖:在 pubspec.yaml 中添加 firebase_messaging 依赖。

  2. 配置 Firebase:在 Firebase 控制台创建项目,并下载 google-services.json 文件,将其放入 android/app 目录。

  3. 初始化 Firebase:在 main.dart 中初始化 Firebase。

  4. 请求权限:在 iOS 上请求通知权限。

  5. 处理消息:设置后台和前台消息处理逻辑。

  6. 获取设备 Token:通过 FirebaseMessaging.instance.getToken() 获取设备 Token,用于发送定向通知。

  7. 测试通知:通过 Firebase 控制台发送测试通知。

通过这些步骤,你可以在 Flutter 应用中实现 FCM 推送通知。

集成FCM,配置google服务,监听消息接收。

在 Flutter 中集成 Firebase Cloud Messaging (FCM) 实现推送通知的步骤如下:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 Firebase 和 FCM 的依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: latest_version
  firebase_messaging: latest_version

然后运行 flutter pub get 安装依赖。

2. 配置 Firebase

Firebase 控制台 中创建一个新项目,并添加 Android 和 iOS 应用。下载 google-services.json(Android)和 GoogleService-Info.plist(iOS)文件,并将它们分别放在 android/appios/Runner 目录中。

3. 初始化 Firebase

main.dart 中初始化 Firebase:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: HomeScreen(),
    );
  }
}

4. 配置 FCM

HomeScreen 中配置 FCM 并处理通知:

import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;

  @override
  void initState() {
    super.initState();
    _configureFCM();
  }

  void _configureFCM() async {
    NotificationSettings settings = await _firebaseMessaging.requestPermission(
      alert: true,
      badge: true,
      sound: true,
    );

    if (settings.authorizationStatus == AuthorizationStatus.authorized) {
      FirebaseMessaging.onMessage.listen((RemoteMessage message) {
        print("收到前台通知: ${message.notification?.title}");
      });

      FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
        print("用户点击通知打开应用: ${message.notification?.title}");
      });

      FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
    }
  }

  static Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
    print("收到后台通知: ${message.notification?.title}");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('FCM Example'),
      ),
      body: Center(
        child: Text('Firebase Cloud Messaging'),
      ),
    );
  }
}

5. 处理后台通知

对于后台通知,需要在 android/app/src/main/AndroidManifest.xml 中添加服务:

<service
    android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

在 iOS 中,需要在 AppDelegate.swift 中配置 FCM。

6. 测试推送通知

在 Firebase 控制台中发送测试通知,确保应用能够接收并处理通知。

通过这些步骤,你可以在 Flutter 应用中成功集成 Firebase Cloud Messaging 并实现推送通知功能。

回到顶部