flutter集成华为推送(Android)
Flutter 集成华为 Push(huawei_push: 6.12.0+303)教程
前言
在 Flutter 项目中集成华为推送(Huawei Push)可以让应用在华为设备上实现消息推送功能。本文将介绍如何在 Flutter 中集成 huawei_push
插件,并实现基本的推送功能。
1. 配置华为开发者账号
1.1 注册华为开发者账号
前往 华为开发者官网 注册并登录你的开发者账号。
1.2 创建应用
- 进入 AppGallery Connect,点击 我的应用。
- 创建一个新的应用,并填写相关信息。
- 记下 App ID 和 Package Name,后续需要使用。
1.3 配置推送服务
- 在 AppGallery Connect 项目设置 -> API 管理,启用 推送服务(Push Kit)。
- 进入 认证信息,下载
agconnect-services.json
文件,并放入 Flutter 项目的android/app/
目录。
2. 集成 huawei_push
插件
2.1 添加依赖
在 pubspec.yaml
文件中添加:
dependencies:
flutter:
sdk: flutter
huawei_push: 6.12.0+303
然后运行:
flutter pub get
2.2 修改 AndroidManifest.xml
在 android/app/src/main/AndroidManifest.xml
文件中添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
在 <application>
标签内添加:(亲测不加也可以)
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=你的华为App ID" />
2.3 配置 build.gradle
修改 android/build.gradle
buildscript {
dependencies {
classpath "com.huawei.agconnect:agcp:1.9.1.301"
}
}
修改 android/app/build.gradle
apply plugin: 'com.huawei.agconnect'
dependencies {
implementation 'com.huawei.hms:push:6.9.0.300' // 最新 HMS 推送 SDK
implementation 'com.huawei.agconnect:agconnect-core:1.8.0.300'
}
3. 初始化和使用华为 Push
3.1 请求推送权限
在 main.dart
中初始化 huawei_push
:
import 'package:flutter/material.dart';
import 'package:huawei_push/huawei_push.dart' as huaweipush;
void main() {
runApp(MyApp());
initPush();
}
void initPush() async {
// 绑定deviceToken
huaweipush.Push.getTokenStream.listen(
(deviceToken) async {
logDebug("【华为deviceToken】$deviceToken");
},
onError: (error) {
logDebug("【华为deviceToken Error】$error");
},
);
String result = await huaweipush.Push.turnOnPush(); // 打开开关
huaweipush.Push.getToken('');// 真正获取token
}
3.2 监听推送消息
HmsPush.onMessageReceivedStream.listen((event) {
print("收到推送消息: ${event.data}");
});
4. 运行与测试
4.1 运行项目
flutter run
4.2 在华为云测试推送
- 进入 AppGallery Connect -> 云测试。
- 选择 推送测试,填写
Token
并发送消息。 - 观察设备是否收到推送通知。
5. 常见问题
Q1: 获取 Token 失败?
解决方案:
- 确保
agconnect-services.json
文件已正确放置。 - 确保
appid
配置正确。
Q2: 推送消息无法收到?
解决方案:
- 确保
onMessageReceivedStream
监听到了消息。 - 确保应用没有被系统后台限制。
- 在华为云 推送测试 里检查推送状态。
结语
至此,你已经成功在 Flutter 项目中集成了 huawei_push
6.12.0+303,并实现了基础的推送功能。