Flutter 中的推送通知:Firebase Cloud Messaging 集成
Flutter 中的推送通知:Firebase Cloud Messaging 集成
在 Flutter 中集成 Firebase Cloud Messaging 实现推送通知,需添加 firebase_messaging
插件,配置 Firebase 项目,并在应用中处理消息接收和显示。
在 Flutter 中集成 Firebase Cloud Messaging (FCM) 实现推送通知,步骤如下:
-
添加依赖:在
pubspec.yaml
中添加firebase_messaging
依赖。 -
配置 Firebase:在 Firebase 控制台创建项目,并下载
google-services.json
文件,将其放入android/app
目录。 -
初始化 Firebase:在
main.dart
中初始化 Firebase。 -
请求权限:在 iOS 上请求通知权限。
-
处理消息:设置后台和前台消息处理逻辑。
-
获取设备 Token:通过
FirebaseMessaging.instance.getToken()
获取设备 Token,用于发送定向通知。 -
测试通知:通过 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/app
和 ios/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 并实现推送通知功能。