Flutter项目适配鸿蒙

Flutter项目适配鸿蒙

前言

目前市面上使用Flutter技术站的app不在少数,对于Flutter的项目,可能更多的是想直接兼容Harmonyos,而不是直接在重新开发一个新的鸿蒙项目。

那么Flutter如何兼容鸿蒙平台了?接下来我们探讨下Flutter项目是如何兼容鸿蒙的。

参考文档: flutter_sample

Flutter项目适配鸿蒙

新工程直接支持ohos

如果你的项目现在才刚开开始启动, 那么你完全可以创建一个新的Flutter项目,直接支持Android、iOS、ohos 等平台。

构建新项目

创建项目指令:flutter cteate --platforms android,ios,ohos(支持的平台) <projectname(项目名称)>

由于Flutter官方并没有明确表示支持鸿蒙,所以无法使用Android Studio等编译工具直接创建一个支持ohos(鸿蒙)平台的Flutter项目。

命令行输入指令:flutter create --platforms android,ios,ohos flutter_test_demo_gy

执行结果:

工程结果目录:

根据目录我们看出, 其实跟原来Flutter创建的工程差别不大, 只是多了一个ohos的工程目录。这个目录就是我们所说的鸿蒙工程。

编译

我们可以打开ohos目录下的鸿蒙工程,然后在终端执行命令flutter build hap

当我们第一次打开ohos功臣, 同步项目时,会报如下错误:

这个错误是由找不到fluttter.har包的问题, 因为此时你还没有编译, 等你执行完编译指令后就没有这个错误了。

如上图执行成功后, 我们可以看到ohos项目把Flutter项目的东西打包成一个har包给ohos项目引用着。

注意:Flutter鸿蒙化项目只能运行在真机上或者arm架构设备的模拟器上

运行

在编译完项目之后, 你可以按照鸿蒙项目的开发流程一样,配置证书、直接点击编译工具运行项目, 也可以使用原来的Flutter指令来运行:flutter run

运行结果:

Flutter页面正常展示,代表Flutter项目已经成功运行在鸿蒙手机上。

如果后续需要开发新的功能, 我们需要再Flutter中编写相关代码, 然后在走编译、运行流程。

适配已有的Flutter项目

如下图,我现在有一个已经存在Flutter项目:

从上面的结构目录看, 这个一个不支持ohos平台的项目,我们如何让这个已经存在的Flutter兼容鸿蒙平台?

  1. cd 进入项目根目录
  2. 执行指令flutter create ./ --platform ohos 创建鸿蒙模块

执行结果:

执行完命令后的目录结构:

然后我们就可以打开ohos鸿蒙工程, 直接编译、运行到手机上。

运行结果:

相关推荐
SuperHeroWu737 分钟前
HarmonyOS Dev Assistant (HarmonyOS开发助手)如何打通元服务开发全流程
ai·agent·harmonyos·vs code·元服务·hbuilderx·assistant
熊猫钓鱼>_>1 小时前
用 OHAudioSuite 空间渲染节点搭一座「3D 有声博物馆」——从三种模式到 FreeBuds 头追的实战记录
c++·3d·ai·harmonyos·arkts·audio·ohaudiosuite
OH_TPC1 小时前
HarmonyOS APP开发---"心动卡"社交匹配App,需要用到这个库
harmonyos
光锥智能1 小时前
HUAWEI WATCH 6系列正式发布:鸿蒙AI手表,智慧健康旗舰
人工智能·华为·harmonyos
「、皓子~3 小时前
海狸IM 2.1 私有化部署从零到一:中间件、微服务与 Nginx 全流程
nginx·flutter·微服务·中间件·开源软件·im·海狸im
OH_TPC3 小时前
【鸿蒙优选三方库】@react-native-ohos/react-native-gesture-handler:原生级手势识别与处理框架
华为·harmonyos·鸿蒙
嘴贱欠吻!4 小时前
Flutter 触觉反馈插件 Gaimon三方库鸿蒙端教程
flutter·华为·harmonyos
Francek Chen4 小时前
【HarmonyOS 7】新品发布:华为Mate XT 2携麒麟9050 Pro与鸿蒙7重磅登场
人工智能·华为·harmonyos·鸿蒙·小艺
getapi4 小时前
1 在 macOS 电脑上更新 Flutter iOS 应用到 App Store
flutter·macos·ios
恋猫de小郭4 小时前
Flutter 状态管理基准测评,一个很有趣的观点
android·前端·flutter