admin管理员组文章数量:1440081
现有 Flutter 项目支持鸿蒙
现有 Flutter 项目支持鸿蒙
最近这关税战打的是不亦说乎,从另一方面来说,国产替代浪潮奔涌,鸿蒙适配已成为一个必答题,这里面跨端框架是破局多 OS 割裂的最优解。比如 Flutter,之前有很多 app 可能是用 Flutter 做的,那么如何支持鸿蒙呢?
第一步:配置鸿蒙版 Flutter SDK
关于如何配置,大家可以查看前面的几篇文章,或者大家关注这个仓库[1],根据这个项目的说明,也是可以配置成功的。
使用最新的 Flutter SDK 3.22.1 构建 HarmonyOS 应用
这里面注意就是切换成为 3.22 的版本。
3.22 版本是去年发布的,目前已经能满足大部分场景的使用。
第二步:项目添加鸿蒙侧的支持
配置好环境好,就可以使用这条命令完成对鸿蒙平台的支持
代码语言:javascript代码运行次数:0运行复制flutter create --platforms ohos fluttertoharmony
然后大家可以看到在 apps 目录下新建一个项目,该项目运行鸿蒙平台适配和打包。
进入到 fluttertoharmony 目录,将 ohos 目录复制出来就完成了对鸿蒙平台的支持。
代码语言:javascript代码运行次数:0运行复制jianguo@nutpi my_app % tree -L 3
.
├── README.md
├── analysis_options.yaml
├── android
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── local.properties
│ ├── my_app_android.iml
│ └── settings.gradle
├── ios
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ ├── Generated.xcconfig
│ │ ├── Release.xcconfig
│ │ └── flutter_export_environment.sh
│ ├── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── Base.lproj
│ │ ├── GeneratedPluginRegistrant.h
│ │ ├── GeneratedPluginRegistrant.m
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ └── xcshareddata
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ └── RunnerTests
│ └── RunnerTests.swift
├── lib
│ └── main.dart
├── linux
│ ├── CMakeLists.txt
│ ├── flutter
│ │ ├── CMakeLists.txt
│ │ ├── generated_plugin_registrant
│ │ ├── generated_plugin_registrant.h
│ │ └── generated_plugins.cmake
│ ├── main
│ ├── my_application
│ └── my_application.h
├── macos
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ ├── Flutter-Release.xcconfig
│ │ ├── GeneratedPluginRegistrant.swift
│ │ └── ephemeral
│ ├── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── Base.lproj
│ │ ├── Configs
│ │ ├── DebugProfile.entitlements
│ │ ├── Info.plist
│ │ ├── MainFlutterWindow.swift
│ │ └── Release.entitlements
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ └── xcshareddata
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ └── RunnerTests
│ └── RunnerTests.swift
├── my_app.iml
├── ohos
│ ├── AppScope
│ │ ├── app.json5
│ │ └── resources
│ ├── build-profile.json5
│ ├── entry
│ │ ├── build-profile.json5
│ │ ├── hvigorfile.ts
│ │ ├── oh-package.json5
│ │ └── src
│ ├── hvigor
│ │ └── hvigor-config.json5
│ ├── hvigorfile.ts
│ ├── local.properties
│ └── oh-package.json5
├── pubspec.lock
├── pubspec.yaml
├── test
│ └── widget_test.dart
├── web
│ ├── favicon.png
│ ├── icons
│ │ ├── Icon-192.png
│ │ ├── Icon-512.png
│ │ ├── Icon-maskable-192.png
│ │ └── Icon-maskable-512.png
│ ├── index.html
│ └── manifest.json
└── windows
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
└── runner
├── CMakeLists.txt
├── Runner.rc
├── flutter_window.cpp
├── flutter_window.h
├── main.cpp
├── resource.h
├── resources
├── runner.exe.manifest
├── utils.cpp
├── utils.h
├── win32_window.cpp
└── win32_window.h
46 directories, 79 files
jianguo@nutpi my_app %
第三步:三方库添加鸿蒙侧的适配
因为我们开发的项目肯定不可能没有任何三方库的依赖,所以需要三方库也完成对鸿蒙侧的支持,如果这个库是纯 dart 库,那么很好,不用迁移,相反就要迁移。是否适配,可以查看这个库[2]。如果没有适配好,那就需要自己适配。
鸿蒙版 Flutter 三方库适配案例【screen_brightness】
适配好的可以学如下方式添加支持。
代码语言:javascript代码运行次数:0运行复制dependency_overrides:
video_player:
git:
url: ".git"
path: "packages/video_player/video_player"
camera:
git:
url: ".git"
path: "packages/camera/camera"
shared_preferences:
git:
url: ".git"
path: "packages/shared_preferences/shared_preferences"
url_launcher:
git:
url: ".git"
path: "packages/url_launcher/url_launcher"
path_provider:
git:
url: ".git"
path: "packages/path_provider/path_provider"
flutter_phone_direct_caller:
git:
url: ".git"
flutter_sms:
git:
url: ".git"
permission_handler:
git:
url: ".git"
path: "permission_handler/"
screen:
git:
url: ".git"
path: .
image_gallery_saver:
git:
url: ".git"
path: .
fluttertoast:
git:
url: ".git"
path: "./"
第四步:打包上架
完成整个开发后,就打包上架,打包上架按照鸿蒙的打包上架流程操作就好。
坚果派
坚果派由坚果等人创建,团队拥有若干华为 HDE,以及若干其他领域的三十余位万粉博主运营。专注于分享的技术包括 HarmonyOS/OpenHarmony,ArkUI-X,元服务,服务卡片,华为自研语言,BlueOS 操作系统、团队成员聚集在北京、上海、广州、深圳、南京、杭州、苏州、宁夏等地。 聚焦“鸿蒙原生应用”、“智能物联”和“AI 赋能”、“人工智能”四大业务领域,依托华为开发者专家等强大的技术团队,以及涵盖需求、开发、测试、运维于一体的综合服务体系,赋能文旅、媒体、社交、家居、消费电子等行业客户,满足社区客户数字化升级转型的需求,帮助客户实现价值提升。 目前上架鸿蒙原生应用 18 款,三方库 72 个。
地址:
参考资料
[1] 关注这个仓库: .22.0-ohos
[2] 可以查看这个库:
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-14,如有侵权请联系 cloudcommunity@tencent 删除打包flutter华为开发配置本文标签: 现有 Flutter 项目支持鸿蒙
版权声明:本文标题:现有 Flutter 项目支持鸿蒙 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1747669089a2740315.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论