將 Flutter 應用適配到鴻蒙(HarmonyOS)主要有兩種常用方式:源碼集成 和 HAR 包集成。以下以 HAR 包集成為例,結合最新鴻蒙版 Flutter SDK(3.7.12 / 3.22 / 3.27.4)説明完整流程。
環境準備
- 安裝 DevEco Studio(5.0+)並配置 JDK17
- 下載鴻蒙版 Flutter SDK:
git clone --branch oh-3.27.4-dev https://gitcode.com/openharmony-sig/flutter_flutter.git
- 配置環境變量:
export FLUTTER_HOME=~/flutter_flutter
export FLUTTER_OHOS_STORAGE_BASE_URL=https://flutter-ohos.obs.cn-south-1.myhuaweicloud.com
export PATH=$FLUTTER_HOME/bin:$PATH
創建 Flutter 模塊並生成 HAR 包
- 創建模塊:
flutter create --template=module my_flutter_module
- 編譯生成 HAR: flutter build har --release 會在 .ohos/har 下生成: flutter.har(引擎包) flutter_module.har(業務邏輯包)
鴻蒙應用集成
- 在鴻蒙工程中新建目錄存放 HAR 包
- 在 oh-package.json5 中添加依賴:
{
"dependencies": {
"flutter": "file:./libs/flutter.har",
"flutter_module": "file:./libs/flutter_module.har"
}
}
- 在 EntryAbility 中綁定 Flutter:
import { FlutterEntry, FlutterPage } from '@ohos/flutter_ohos';
@Entry
@Component
struct MyFlutterPage {
private flutterEntry: FlutterEntry | null = null;
private flutterView?: FlutterView;
aboutToAppear() {
this.flutterEntry = new FlutterEntry(getContext(this), {'route': '/home'});
this.flutterView = this.flutterEntry.getFlutterView();
}
build() {
Stack() {
FlutterPage({ viewId: this.flutterView?.getId() })
}
}
}
適配與調試建議
- 插件替換:純 Dart 包可直接用,平台相關包需替換為鴻蒙版組件(參考 flutter_packages 鴻蒙適配列表)
- 調試:執行 flutter run 可熱重載,首次需在 DevEco Studio 配置簽名
- 平台判斷:使用 Platform.isHarmonyOS 做條件分支,保持多端兼容
這樣即可讓現有 Flutter 應用快速運行在鴻蒙設備上,並調用原生能力。
哲學管理(學)人生, 文學藝術生活, 自動(計算機學)物理(學)工作, 生物(學)化學逆境, 歷史(學)測繪(學)時間, 經濟(學)數學金錢(理財), 心理(學)醫學情緒, 詩詞美容情感, 美學建築(學)家園, 解構建構(分析)整合學習, 智商情商(IQ、EQ)運籌(學)生存.---Geovin Du(塗聚文)