实战|使用环信Flutter SDK构建鸿蒙HarmonyOS应用及推送配置

217 阅读3分钟

本文介绍如何在Flutter环境创建Harmony项目并集成环信即时通讯以及环信Flutter Harmony推送配置。

一、开发环境要求
前置条件

1.安装DevEco-Studio 2.安装模拟器 DevEco-Studio 下载与操作指导

oh环境变量
export TOOL_HOME=/Applications/DevEco-Studio.app/Contents # mac环境
export DEVECO_SDK_HOME=$TOOL_HOME/sdk # command-line-tools/sdk
export PATH=$TOOL_HOME/tools/ohpm/bin:$PATH # command-line-tools/ohpm/bin
export PATH=$TOOL_HOME/tools/hvigor/bin:$PATH # command-line-tools/hvigor/bin
export PATH=$TOOL_HOME/tools/node/bin:$PATH # command-line-tools/tool/node/bin
Flutter 环境变量
export PATH="$HOME/Settings/flutter/bin:$PATH"
环境验证
flutter doctor
成功结果
[!] Flutter (Channel oh-3.22.0, 3.22.1-0.0.pre.32, on macOS 14.5 23F79
    darwin-arm64, locale zh-Hans-CN)
    ! Upstream repository git@gitee.com:harmonycommando_flutter/flutter.git is
      not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to
      git@gitee.com:harmonycommando_flutter/flutter.git to dismiss this error.
[✓] HarmonyOS toolchain - develop for HarmonyOS devices
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.97.2)

至此说明环境已经搭建成功

二、鸿蒙im_flutter_sdk快速入门
向已存在的项目中添加鸿蒙支持

需要先进入到项目中,之后执行命令

flutter create  --platforms=ohos .

注意:后面有. 如果之前设置了org,此时可能会报org冲突,此时需要在命令中指定 org。

flutter create  --platforms=ohos . --org="xxx.xxx"

其中 xxx.xxx 为您 org 的名称。

新建支持鸿蒙的项目
flutter create new_project_name --org="xxx.xxx" --platforms=ios,android,ohos
添加 im_flutter_sdk

在工程的 pubspec.yaml 中添加 sdk 依赖。或在环信官网下载IM Flutter SDK

  im_flutter_sdk:
    git:
      url: "https://github.com/easemob/im_flutter_sdk_oh.git"
      ref: "7cc70a0"
修改 useNormalizedOHMUrl 模式

因为 环信 sdk 只支持 useNormalizedOHMUrl模式,需要在你的项目中配置 useNormalizedOHMUrl 为 true 打开 app/ohos/build-profile.json5 文件,找到 app:products:, 并向其中添加 buildOption

"products": [
  {
    "name": "default",
    "signingConfig": "default",
    "compatibleSdkVersion": "5.0.0(12)",
    "runtimeOS": "HarmonyOS",
    // 添加内容
    "buildOption": {
      "strictMode": {
        "useNormalizedOHMUrl": true
      }
    }
  }
]

运行项目时需要先 build hap包。 执行

flutter build hap --debug

注意:使用Visual studio code 可能会出现识别不到harmony 模拟器的情况 进入项目运行

flutter run

选择要执行的设备

[1]: sdk gphone64 arm64 (emulator-5556)
[2]: iPhone 15 Pro (99ECBD72-FCB5-4FD1-ADC8-0E0D52AE9B70)
[3]: Mac Designed for iPad (mac-designed-for-ipad)
Please choose one (or "q" to quit): 

至此成功集成了环信Flutter Harmony

三、推送配置
在Flutter层初始化的时候进行配置AppID
 EMOptions options = EMOptions.withAppKey(
      "appkey",
      extSettings: {
        ExtSettings.kAppIDForOhOS: "appid",
      },

    );

harmony 检查包名是否与开放平台一致

project--->AppScope--->appjson5--->bundleName
手动签名

手动签名参考华为开发文档

手动配置签名信息

1、点击DevEco Studio右上角的File 打开Project Structure窗口,进入Signing Config页签,取消勾选Automatically generate signature。 在Signing下分别配置密钥(.p12文件)、Profile(.p7b文件)和数字证书(.cer文件)的路径等信息。

2、勾选Show restricted permissions,即可看到配置成功的权限。 3、配置完毕后,点击Apply。 4、进入工程级build-profile.json5文件,在signingConfigs下可查看到配置成功的签名信息,点击右上角的Run按钮运行应用/元服务。

至此,我们完成了环信Flutter Harmony 集成与推送。通过本次环信Flutter Harmony项目的实践,我们不仅掌握了在Flutter环境下创建鸿蒙项目的基本流程,还深入了解了环信推送在鸿蒙系统上的配置与应用,这是一次富有挑战性和收获性的探索之旅。

帮助文档: