鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter
概述
将 Flutter 模块添加至宿主鸿蒙项目中后,接下需要实现页面跳转、消息通信等功能,本文重点介绍如何初始化 Flutter。
项目配置
添加依赖
编辑 ohos_app/oh-package.json 文件
- 如果通过 Har 包方式引入 Flutter 模块,则需要添加如下内容
1 | "dependencies": { |
- 如果通过源码方式引入 Flutter 模块,则需要添加如下内容:
1 | "dependencies": { |
Flutter 引擎初始化
编辑 ohos_app/entry/src/main/ets/entryability/EntryAbility.ts
文件,按以下方式修改:
1 | -import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; |
最终 EntryAbility.ts 文件内容如下:
1 | import { FlutterAbility, FlutterEngine } from '@ohos/flutter_ohos'; |
EntryAbility
继承自 FlutterAbility
,而 FlutterAbility
继承自 UIAbility
, 它在 UIAbility
上增加了以下功能:
- 引擎管理
- 初始化Flutter引擎(FlutterEngine)
- 通过Delegate处理Flutter与原生能力绑定
- 管理窗口生命周期(create/destroy)
- UI交互
- 创建FlutterView视图容器
- 处理系统配置变化(深色模式/字体缩放)
- 实现多语言/无障碍服务适配
- 生命周期协调
- 转发原生生命周期事件到Flutter层(onForeground/onBackground)
- 处理异常恢复(appRecovery.restartApp)
- 扩展支持
- 提供插件管理接口(addPlugin)
- 支持热重载配置同步(onConfigurationUpdate)
总结
本节主要介绍了如何初始化 Flutter 引擎,以及 初始化 Flutter Module。下一节我们将介绍如何由原生跳转至 Flutter 并展示界面。