Flutter华为推送服务插件huawei_push的使用

发布于 1周前 作者 yibo5220 来自 Flutter

Flutter华为推送服务插件huawei_push的使用

安装

请参考 pub.devAppGallery Connect 配置

文档

其他主题

问题或反馈

如果您在使用 HMS 样例时遇到任何问题,请尝试以下选项:

  • Stack Overflow 上提问,并确保使用标签 <strong>huawei-mobile-services</strong>
  • GitHub 上打开一个 Issue 或提交您的想法。
  • 华为开发者论坛 的 HMS Core 模块发布一般问题或寻求建议和意见。
  • 查阅 华为开发者文档,了解所有 HMS Core Kit 的官方文档。

如果您在示例中发现了错误,请提交到 GitHub 仓库

许可证

Huawei Push Kit Flutter 插件是根据 Apache 2.0 许可证 授权的。

完整示例

以下是完整的 Flutter 示例代码,用于展示如何使用 Huawei Push Kit 插件:


更多关于Flutter华为推送服务插件huawei_push的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter华为推送服务插件huawei_push的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成华为推送服务插件 huawei_push,可以按照以下步骤进行配置和实现。以下是一个简要的代码案例,展示了如何在Flutter应用中使用 huawei_push 插件来接收推送消息。

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 huawei_push 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  huawei_push: ^版本号  # 请替换为最新版本号

然后运行 flutter pub get 来获取依赖。

2. 配置 android/app/build.gradle

android/app/build.gradle 文件中添加华为推送服务的配置:

android {
    ...
    defaultConfig {
        ...
        applicationId "你的包名"
        manifestPlaceholders = [
                "app_channel": "your_channel" // 替换为你的渠道
        ]
    }
    ...
}

dependencies {
    implementation 'com.huawei.hms:push:版本号'  // 请替换为最新版本号
}

3. 配置 android/app/src/main/AndroidManifest.xml

AndroidManifest.xml 文件中添加必要的权限和华为推送服务所需的配置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="你的包名">

    <!-- 华为推送服务所需的权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />

    <!-- 华为推送服务的应用ID -->
    <meta-data
        android:name="com.huawei.hms.client.appid"
        android:value="你的App ID" />

    <application
        ... >
        <!-- 华为推送服务的Receiver -->
        <receiver android:name="com.huawei.hms.support.api.push.receiver.PushReceiver"
            android:permission="com.huawei.permission.EXTERNAL_APP">
            <intent-filter>
                <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
            </intent-filter>
        </receiver>
        
        <!-- 其他配置 -->
    </application>
</manifest>

4. 初始化华为推送服务

在你的 Flutter 应用中初始化华为推送服务,并处理推送消息。以下是一个简单的示例代码:

import 'package:flutter/material.dart';
import 'package:huawei_push/huawei_push.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    _initHuaweiPush();
  }

  Future<void> _initHuaweiPush() async {
    try {
      // 初始化华为推送服务
      await HuaweiPush.init();

      // 监听推送消息
      HuaweiPush.onMessageReceived.listen((RemoteMessage message) {
        print('Received message: ${message.toMap()}');
        // 处理接收到的消息
      });

      // 监听令牌刷新
      HuaweiPush.onTokenRefresh.listen((String token) {
        print('Token refreshed: $token');
        // 处理令牌刷新
      });

    } catch (e) {
      print('Failed to init Huawei Push: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Huawei Push Demo'),
        ),
        body: Center(
          child: Text('Waiting for push messages...'),
        ),
      ),
    );
  }
}

5. 获取推送令牌并发送测试消息

在实际应用中,你可能需要获取推送令牌并将其发送到你的服务器,以便服务器能够发送推送消息到你的设备。以下是一个获取推送令牌的示例代码:

Future<void> _getToken() async {
  try {
    String token = await HuaweiPush.getToken();
    print('Got token: $token');
    // 将令牌发送到你的服务器
  } catch (e) {
    print('Failed to get token: $e');
  }
}

你可以在应用启动时调用 _getToken() 方法来获取推送令牌。

注意事项

  1. App ID 和 App Secret:确保你在华为开发者控制台中正确配置了应用的 App ID 和 App Secret。
  2. SHA-256 证书指纹:确保你在华为开发者控制台中添加了正确的 SHA-256 证书指纹。
  3. 渠道配置:根据你的发布渠道,配置 manifestPlaceholders 中的 app_channel

通过以上步骤,你应该能够在 Flutter 应用中成功集成并使用华为推送服务插件 huawei_push

回到顶部