Flutter应用适配鸿蒙平台指导文档
Flutter应用适配鸿蒙平台指导文档本文档介绍如何将已有的 Flutter 应用已支持 iOS/Android扩展支持鸿蒙平台在现有项目中添加鸿蒙平台目录保持多端代码复用。前置条件已安装 DevEco Studio已完成 Flutter OH 环境搭建开始适配1. 备份现有项目cp-ryour_flutter_project your_flutter_project_backup2. 添加鸿蒙平台支持进入你的 Flutter 项目目录执行以下命令cdyour_flutter_project# 为现有项目添加 ohos 平台支持flutter create--platformsohos.执行成功后项目新增 ohos 目录结构如下your_flutter_project/├── android/# Android 平台代码 ├── ios/# iOS 平台代码 ├── ohos/# OpenHarmony 平台代码新增 │ ├── build-profile.json5 │ ├── hvigorfile.ts │ ├── local.properties │ ├── entry/# 主入口模块 │ │ ├── build-profile.json5 │ │ ├── hvigorfile.ts │ │ ├── oh-package.json5 │ │ └── src/│ │ ├── main/│ │ │ ├── ets/│ │ │ │ ├── entryability/│ │ │ │ │ └── EntryAbility.ets # 主入口 Ability │ │ │ │ └── pages/│ │ │ │ └── Index.ets # 主页面 │ │ │ └── resources/# 资源文件 │ │ └── ohosTest/# 测试代码 │ └── ohos/# Flutter 引擎模块 ├── lib/# Dart 业务代码多端复用 ├── test/├── pubspec.yaml └──...3. 配置项目签名使用 DevEco Studio 打开ohos目录选择File → Project Structure → Project → Signing Configs勾选Automatically generate signature自动生成签名点击OK保存4. 适配 pubspec.yaml根据目标 Flutter OH 版本调整 SDK 约束# Flutter 3.27.4-ohos 版本environment:sdk:3.0.0 4.0.0flutter:3.27.0# Flutter 3.22.0-ohos 版本environment:sdk:3.0.0 4.0.0flutter:3.22.0获取依赖flutter clean flutter pub get三方库适配适配前请先查阅 OpenHarmony平台已适配三方库检查项目依赖的三方库是否已适配OpenHarmony 平台。若使用到的三方库未适配可提交 issue 反馈。1. 替换为 OpenHarmony 兼容版本dependencies:# 原配置Pub 官方版本不支持 OpenHarmony# path_provider: ^2.1.0# 新配置OpenHarmony 适配版本path_provider:git:url:https://gitcode.com/CPF-Flutter/flutter_packages.gitpath:packages/path_provider/path_providerref:br_path_provider-v2.1.5_ohos# 根据实际版本调整shared_preferences:git:url:https://gitcode.com/CPF-Flutter/flutter_packages.gitpath:packages/shared_preferences/shared_preferencesref:br_shared_preferences-v2.5.4_ohosurl_launcher:git:url:https://gitcode.com/CPF-Flutter/flutter_packages.gitpath:packages/url_launcher/url_launcherref:br_url_launcher-v6.3.2_ohos2. 自定义库适配如果项目中使用自定义的库则需要为自定义库添加 OpenHarmony 平台实现。适配指导请参考开发Flutter Plugin3. 平台判断代码适配如果代码中有平台判断需要添加 OpenHarmony 支持importdart:io;// 原代码if(Platform.isAndroid){// Android 特定逻辑}elseif(Platform.isIOS){// iOS 特定逻辑}// 适配后 - 添加 OpenHarmony 平台判断if(Platform.isAndroid){// Android 特定逻辑}elseif(Platform.isIOS){// iOS 特定逻辑}elseif(Platform.isOhos){// OpenHarmony 特定逻辑}4. 纯 Dart 三方库通常纯 Dart 三方库无需修改即可在 OpenHarmony 上运行。但如果代码中有平台判断还是需要参照上面第3步添加 添加 OpenHarmony 平台判断。构建与运行1. 连接设备# 查看连接的设备flutter devices# 预期输出示例# 9CN0123608000xxx (mobile) • 9CN0123608000xxx • ohos-arm64 • Ohos OpenHarmony-6.1.0.262. 运行调试# 运行到鸿蒙设备flutter run-ddevice_id# 或使用简写如果只有一台鸿蒙设备flutter run3. 构建 HAP 包# 调试版本flutter build hap--debug# 正式版本flutter build hap--release4. 安装 HAP 包# 使用 hdc 工具安装hdcinstallbuild\ohos\hap\entry-default-signed.hap# 或指定设备hdc-tdevice_idinstallbuild\ohos\hap\entry-default-signed.hap问题交流问题反馈欢迎在 Flutter框架仓库 以及各个 Flutter 三方库提交issue。
