首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙 ...
返回列表
发新帖
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
[复制链接]
发表于 2024-12-3 16:00:57
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
鸿蒙Flutter实战:现有Flutter项目支持鸿蒙
背景
原来使用Flutter开发的项目,必要适配鸿蒙。
环境搭建
见文章[鸿蒙Flutter适配指南],搭建开发环境,使用fvm管理多
版本
SDK。
模块化
原有项目保持模块化,拆分为 apps/common/components/modules/plugins等目录,如下所示:
.
├── README.md
├── analysis_options.yaml
├── melos.yaml
├── melos_ogw-flutter.iml
├── node_modules
├── packages
│ ├── README.md
│ ├── apps
│ │ ├── app
│ │ ├── dsm_app
│ │ ├── ohos_app
│ │ └── web
│ ├── common
│ │ ├── domains
│ │ ├── extensions
│ │ ├── services
│ │ └── widgets
│ ├── components
│ │ ├── image_uploader
│ │ ├── player
│ │ └── scroll_banner
│ ├── modules
│ │ ├── address
│ │ ├── community
│ │ ├── home
│ │ ├── invoice
│ │ ├── me
│ │ ├── message
│ │ ├── order
│ │ ├── shop
│ │ ├── support
│ │ ├── updater
│ └── plugins
│ ├── image_picker
│ ├── printer
├── pubspec.lock
├── pubspec.yaml
└── yarn.lock
复制
代码
plugins 是依靠于原生平台的插件,
components 是平台无关的组件,
common 内里是领域对象,小组件,服务类,扩展等,平台无关,内里均为纯 Dart
代码
。
apps 是应用外衣,通过组合不同的模块,向不同的平台打包。
使用 melos 管理多包仓库。
其中apps下的项目,则为必要打包成各平台,各app的入口项目。内里主要为项目
配置
代码
,模块依靠
配置
,以及特定的平台适配代码。
在apps目录下新建鸿蒙项目,先把壳项目在鸿蒙中跑起来,确保没有题目。依次再添加依靠项,首先添加纯dart编写的包,再添加依靠于原生代码/插件的包。留意挨个添加依靠,不要一次添加太多依靠,方便排查定位题目,
办理
版本
依靠题目,鸿蒙Flutter项目现在必要依靠于3.7
版本
,假如原项目使用了更低的版本,则可将原项目SDK依靠升级至3.7;假如原项目SDK版本高于3.7,则有两种方案:一种是降级原项目SDK依靠为3.7;另外一种是使用多分支方案。
特定平台工程
在 apps 目录下新建一个项目,该项目运行鸿蒙平台适配和打包。
flutter create --platforms ohos ohos_app
复制代码
目录结构如下所示:
.
├── README.md
├── analysis_options.yaml
├── assets
│ ├── icons
│ │ ├── 2.0x
│ │ ├── 3.0x
│ │ └── placeholder.png
│ └── images
│ ├── 2.0x
│ └── 3.0x
├── build
│ ├── ...
├── env
├── lib
│ ├── config
│ │ ├── easy_refresh.dart
│ │ ├── routes.dart
│ │ └── theme.dart
│ └── main.dart
├── ohos
│ ├── AppScope
│ │ ├── app.json5
│ │ └── resources
│ ├── build-profile.json5
│ ├── entry
│ │ ├── build
│ │ ├── build-profile.json5
│ │ ├── hvigorfile.ts
│ │ ├── oh-package-lock.json5
│ │ ├── oh-package.json5
│ │ ├── oh_modules
│ │ └── src
│ ├── har
│ │ ├── ...
│ ├── hvigor
│ │ └── hvigor-config.json5
│ ├── hvigorfile.ts
│ ├── local.properties
│ ├── oh-package-lock.json5
│ ├── oh-package.json5
│ └── oh_modules
│ └── ...
├── pubspec.lock
└── pubspec.yaml
复制代码
可以看到,该项目只是一个壳工程,没有太多代码,主要为项目的一些特定
配置
,如主题、路由等,以及App入口初始化配置。
编辑 pubspec.yaml 文件,添加组件和模块依靠。
environment:
sdk: '>=2.19.6 <3.0.0'
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
# 下拉刷新
easy_refresh: ^3.0.4+2
flutter_dotenv: ^5.1.0
go_router: ^6.0.0
# 领域对象
domains:
path: '../../common/domains'
services:
path: '../../common/services'
widgets:
path: '../../common/widgets'
address:
path: '../../modules/address'
support:
path: '../../modules/support'
me:
path: '../../modules/me'
message:
path: '../../modules/message'
order:
path: '../../modules/order'
shop:
path: '../../modules/shop'
home:
path: '../../modules/home'
复制代码
配置对特定插件进行鸿蒙化适配
部门第三方插件以及插件依靠的其他库,假如没有适配鸿蒙,则可以通过 override配置鸿蒙化的版本
dependency_overrides:
# ohos
path_provider:
git:
url: "https://gitee.com/openharmony-sig/flutter_packages.git"
path: "packages/path_provider/path_provider"
复制代码
编译运行
运行 Flutter 项目,查看相干日记和运行界面,针对出现的题目再单独处置惩罚。
查看日记,可以在运行Flutter处的IDE调试控制台查看 Flutter 项目日记,可以使用 hdc hilog 下令或DevEco 查看系统日记。
回复
使用道具
举报
返回列表
浏览过的版块
MES
人工智能
开源技术
SQL-Server
分布式数据库
Java
数据仓库与分析
涛声依旧在
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表