flutter如何集成华为推送

在Flutter项目中如何集成华为推送服务?需要哪些具体步骤和依赖配置?官方文档提到的agconnect-services.json文件应该放在哪个目录下?集成过程中常见的错误有哪些以及如何解决?是否需要额外处理华为移动服务(HMS)的兼容性问题?

2 回复

在Flutter中集成华为推送,需使用官方HMS Core插件。步骤如下:

  1. 在项目中添加huawei_push依赖。
  2. 配置agconnect-services.json文件。
  3. 初始化推送服务并申请权限。
  4. 处理消息接收和点击事件。

参考华为官方文档完成详细配置。

更多关于flutter如何集成华为推送的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成华为推送(HMS Push Kit)的步骤如下:

1. 环境准备

  • 注册华为开发者账号,在AppGallery Connect创建应用。
  • 配置SHA-256证书指纹。
  • 开启Push Kit服务并获取agconnect-services.json配置文件。

2. 添加依赖

pubspec.yaml中添加HMS Push插件依赖:

dependencies:
  huawei_push: ^6.3.0+300

运行flutter pub get安装依赖。

3. 配置项目

  • Android
    • agconnect-services.json文件放置到android/app目录。
    • android/build.gradle中添加HMS仓库:
      allprojects {
          repositories {
              // 其他仓库...
              maven { url 'https://developer.huawei.com/repo/' }
          }
      }
      
    • android/app/build.gradle中应用插件:
      apply plugin: 'com.huawei.agconnect'
      

4. 初始化与权限申请

main.dart中初始化并申请通知权限:

import 'package:huawei_push/huawei_push.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化Push Kit
  Push.setAutoInitEnabled(true);
  // 申请通知权限(仅HarmonyOS/Android需要)
  Push.turnOnPush().then((result) {
    print("开启推送结果: $result");
  });
  runApp(MyApp());
}

5. 获取Token并处理消息

在应用启动时获取推送Token并设置消息监听:

class _MyHomePageState extends State<MyHomePage> {
  String? _token;

  @override
  void initState() {
    super.initState();
    _getToken();
    _listenToMessages();
  }

  // 获取设备Token
  void _getToken() async {
    try {
      String token = await Push.getToken("");
      setState(() {
        _token = token;
      });
      print("推送Token: $token");
    } on Exception catch (e) {
      print("获取Token失败: $e");
    }
  }

  // 监听消息
  void _listenToMessages() {
    // 处理接收到的消息
    Push.onMessageReceived.listen((RemoteMessage event) {
      print("收到消息: ${event.data}");
      // 显示通知或更新UI
    });
  }
}

6. 后台消息处理(可选)

如需处理后台消息,可配置原生端服务(Android需继承FlutterHmsMessageService处理)。

注意事项

  • 仅适用于华为设备(含HarmonyOS)。
  • 测试时需使用华为手机或模拟器。
  • 确保网络可访问华为服务。

完成以上步骤后,即可通过华为推送服务向应用发送通知消息。

回到顶部