在开发应用国际版时需要集成Google的推送服务,下面详细介绍使用flutter开发Android应用时如何集成Google的推送服务。
一、创建Firebase项目配置文件
- 创建 Firebase 项目:
- 在 Firebase 控制台中,点击“添加项目”。
- 输入项目名称、选择国家/地区和 Google 分析选项,然后点击“创建项目”
- 在 Firebase 中注册您的应用:
- 在 Firebase 控制台中,点击项目概览页面中心位置的 Android 图标或“添加应用”。
- 输入您的应用的软件包名称(通常是 app/build.gradle 文件中的应用级 Gradle 文件)。
- 可选:输入应用别名和调试签名证书 SHA-1。
- 点击“注册应用”
不清楚的可以看官方参考文档。
二、安装配置文件
下载配置文件google-services.json,并将文件放到你的项目工程的project_xxx/android/app/src目录下。
修改android/build.gradle文件,加入倚赖:
buildscript {
dependencies {
// ... other dependencies
classpath 'com.google.gms:google-services:4.3.8'
}
}
在android/app/build.gradle中加入如下行:
apply plugin: 'com.google.gms.google-services'
配置完成后,应用就可以自动读取firebase的配置了。
三、flutter代码
在pubspec.yaml中添加如下两行:
firebase_messaging: ^14.7.19
firebase_core: ^2.27.0
在main.dart的main()方法前加入如下行(一定要放在main()前面):
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// If you're going to use other Firebase services in the background, such as Firestore,
// make sure you call `initializeApp` before using other Firebase services.
await Firebase.initializeApp();
print("Handling a background message: ${message.messageId}");
}
在ruanApp中加入如下代码:
runApp async{
WidgetsFlutterBinding.ensureInitialized();
//一定要放在这行后面,否则编译会报错
//初始化firbase sdk,这里不用填写参数,会自动读取google-services.json的内容
await Firebase.initializeApp();
//申请权限
FirebaseMessaging messaging = FirebaseMessaging.instance;
await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
//处理后台消息的回调方法
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
//获取推送需要的Token
final fcmToken = await FirebaseMessaging.instance.getToken();
编译运行,如果fcmToken 返回值说明客户端推送初始化成功了,现在就可以接收google的推送了。
四、测试推送
从 Firebase Console可以发送测试推送信息。
点击”制作首个宣传活动”
选择Firebase通知信息,然后点击创建。
填写标题和文字,然后点击“发送测试消息”。
在输入框中填入你程序里这一行:
final fcmToken = await FirebaseMessaging.instance.getToken();
获取到的fcmToken,然后点击+按钮,将token添加进去,然后点击“测试”,就会给你的手机发送一条推送消息。因为发送的是通知消息,需要应用退出才能收到。如果成功的收到了通知消息,恭喜你Google推送客户端集成成功。