Flutter推送通知实战_Firebase云消息配置
在Flutter中集成Firebase云消息推送通知时遇到几个问题:
- 按照官方文档配置了AndroidManifest.xml和google-services.json,但测试时收不到通知,是不是漏掉了什么关键步骤?
- iOS端需要额外配置APNs证书吗?具体在Firebase控制台和Xcode中该如何操作?
- 后台消息处理时,onMessageOpenedApp回调在应用杀死状态下不触发,应该如何正确实现点击通知跳转指定页面的功能?
- 调试时发现通知图标显示为灰色默认图标,如何自定义Android端的通知图标?
- 有没有办法在不依赖Firebase的情况下测试通知功能?本地开发时需要哪些模拟手段?
更多关于Flutter推送通知实战_Firebase云消息配置的实战教程也可以访问 https://www.itying.com/category-92-b0.html
-
Firebase配置:首先注册Firebase账号并创建项目,下载
google-services.json
,放入Flutter项目的android/app/
目录。 -
添加依赖:在
pubspec.yaml
中添加firebase_messaging
等依赖,然后运行flutter pub get
。 -
初始化Firebase:
- Android: 在
android/build.gradle
添加Google服务插件,在android/app/build.gradle
应用插件。 - iOS: 在Xcode的
General
设置里添加GoogleService-Info.plist
。
- Android: 在
-
请求权限与获取Token:使用
FirebaseMessaging.instance.requestPermission()
请求通知权限,并调用getToken()
获取设备专属Token。 -
监听消息:使用
FirebaseMessaging.onMessage
、onBackgroundMessage
和onResumeMessage
监听前台、后台及点击通知栏消息。 -
服务器端发送消息:通过Firebase提供的API或第三方服务发送消息到特定Token。
-
测试与优化:利用Firebase控制台测试推送功能,调整通知样式与内容。
更多关于Flutter推送通知实战_Firebase云消息配置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
作为屌丝程序员,配置Firebase云消息推送其实不难。首先去Firebase官网创建项目,添加Android应用,填入包名等信息下载google-services.json,放入项目app目录下。
接着在build.gradle里添加依赖和插件:
// 顶层
classpath 'com.google.gms:google-services:4.3.10'
// app模块
apply plugin: 'com.google.gms.google-services'
implementation 'com.google.firebase:firebase-messaging:23.0.0'
然后在AndroidManifest.xml中配置服务:
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
接着实现自定义的服务类MyFirebaseMessagingService,重写onMessageReceived方法处理消息。记得在Firebase控制台配置服务器密钥和测试设备的token,就可以发送测试消息了。整个过程需要耐心调试,特别是网络权限和token获取部分。
Flutter Firebase云消息(FCM)推送通知配置实战
1. 配置Firebase项目
- 前往Firebase控制台创建新项目
- 在项目设置中添加Android和iOS应用
2. Android端配置
-
下载
google-services.json
文件并放置到android/app/
目录 -
在
android/build.gradle
中添加:
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
- 在
android/app/build.gradle
末尾添加:
apply plugin: 'com.google.gms.google-services'
3. iOS端配置
- 下载
GoogleService-Info.plist
并添加到Xcode项目中 - 在
ios/Runner/Info.plist
中添加:
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
4. 添加Flutter依赖
在pubspec.yaml
中添加:
dependencies:
firebase_core: ^2.10.0
firebase_messaging: ^14.6.0
5. 初始化代码
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
runApp(MyApp());
}
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// 处理后台消息
}
6. 获取设备Token
String? token = await FirebaseMessaging.instance.getToken();
print("FCM Token: $token");
7. 处理通知
// 前台消息处理
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('Got a message whilst in the foreground!');
});
// 点击通知处理
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
print('Message clicked!');
});
8. 发送测试通知
- 在Firebase控制台的"云消息传递"页面
- 点击"发送第一条消息"
- 输入通知标题、内容
- 选择目标设备或群组
- 发送测试消息
完成以上步骤后,你的Flutter应用就应该能接收Firebase云消息了。如需进一步定制通知样式或处理逻辑,可以参考官方文档进行扩展。