当前位置: 首页 > news >正文

Flutter三方库适配OpenHarmony【flutter_web_auth】— OpenHarmony 插件工程搭建与配置文件详解

前言

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

从这篇开始正式进入 OpenHarmony 适配的核心内容。第一步是搭建插件工程——创建ohos目录、配置各种 json5 文件、写好入口导出。这些看起来是"脚手架"工作,但配置错一个字段就可能导致插件加载失败,排查起来非常痛苦。

一、ohos 目录结构

1.1 完整目录树

flutter_web_auth/ ├── lib/ # Dart 源码 ├── android/ # Android 插件 ├── ios/ # iOS 插件 ├── macos/ # macOS 插件 ├── ohos/ # OpenHarmony 插件 │ ├── src/ │ │ └── main/ │ │ ├── ets/ │ │ │ └── components/ │ │ │ └── plugin/ │ │ │ └── FlutterWebAuthPlugin.ets ← 核心实现 │ │ └── module.json5 ← 模块声明 │ ├── build-profile.json5 ← 构建配置 │ ├── hvigorfile.ts ← 构建脚本 │ ├── index.ets ← 入口导出 │ ├── oh-package.json5 ← 包配置 │ └── .gitignore ← Git 忽略 ├── pubspec.yaml # Flutter 包配置 └── example/ # 示例应用

1.2 各文件职责

二、oh-package.json5 包配置

2.1 完整内容

{ "name": "flutter_web_auth", "version": "1.0.0", "description": "Please describe the basic information.", "main": "index.ets", "author": "", "license": "Apache-2.0", "dependencies": {} }

2.2 字段说明

字段说明
nameflutter_web_auth包名,必须与 pubspec.yaml 中的 name 一致
version1.0.0OpenHarmony 包版本
mainindex.ets入口文件路径
licenseApache-2.0许可证
dependencies{}无额外依赖

2.3 与 pubspec.yaml 的对应

# pubspec.yamlname:flutter_web_authversion:0.6.0
// oh-package.json5 "name": "flutter_web_auth", // 必须一致 "version": "1.0.0", // 可以不同

📌name 必须一致,否则 Flutter-OHOS 框架找不到插件。version 可以独立管理。

三、build-profile.json5 构建配置

3.1 完整内容

{ "apiType": "stageMode", "targets": [ { "name": "default", "runtimeOS": "OpenHarmony" } ] }

3.2 字段说明

字段说明
apiTypestageModeStage 模型(当前标准)
targets.namedefault默认构建目标
targets.runtimeOSOpenHarmony目标操作系统

3.3 Stage 模型 vs FA 模型

模型状态说明
Stage 模型当前标准Flutter-OHOS 使用
FA 模型已废弃早期 HarmonyOS

💡所有 Flutter-OHOS 插件都使用 Stage 模型。如果你看到 FA 模型的教程,那是过时的。

四、module.json5 模块声明

4.1 完整内容

{ "module": { "name": "flutter_web_auth", "type": "har", "deviceTypes": [ "default", "tablet" ] } }

4.2 字段说明

字段说明
nameflutter_web_auth模块名称
typeharHAR(HarmonyOS Archive)类型
deviceTypesdefault, tablet支持的设备类型

4.3 模块类型

类型说明用途
har静态共享包Flutter 插件使用
hap应用包可安装的应用
hsp动态共享包运行时加载

4.4 与 secure_application 的对比

// flutter_web_auth 的 module.json5 { "module": { "name": "flutter_web_auth", "type": "har", "deviceTypes": ["default", "tablet"] } } // secure_application 的 module.json5(完全相同的结构) { "module": { "name": "secure_application", "type": "har", "deviceTypes": ["default", "tablet"] } }

📌所有 Flutter-OHOS 插件的 module.json5 结构都一样,只有 name 不同。

五、index.ets 入口文件

5.1 完整内容

importFlutterWebAuthPluginfrom'./src/main/ets/components/plugin/FlutterWebAuthPlugin';exportdefaultFlutterWebAuthPlugin;

5.2 作用

index.ets 是 oh-package.json5 中main字段指向的文件。Flutter-OHOS 框架通过这个文件找到插件类。

5.3 导入路径

index.ets ↓ import from ./src/main/ets/components/plugin/FlutterWebAuthPlugin.ets ↓ export default FlutterWebAuthPlugin 类

5.4 常见错误

错误症状解决
路径拼写错误插件加载失败检查文件路径是否正确
没有 export default框架找不到类确保 export default
类名不匹配注册失败确保与 pubspec.yaml 中的 pluginClass 一致

六、hvigorfile.ts 构建脚本

6.1 完整内容

import{harTasks}from'@ohos/hvigor-ohos-plugin';exportdefault{system:harTasks,plugins:[]}

6.2 作用

hvigorfile.ts 是 Hvigor 构建系统的配置文件,类似 Android 的 build.gradle。对于 Flutter 插件,使用默认的harTasks就够了。

七、.gitignore 配置

7.1 完整内容

/node_modules /oh_modules /build /oh-package-lock.json5 /.preview

7.2 说明

路径说明
node_modulesNode.js 依赖(Hvigor 使用)
oh_modulesOpenHarmony 模块依赖
build构建输出
oh-package-lock.json5依赖锁定文件
.preview预览缓存

八、pubspec.yaml 中的 ohos 平台声明

8.1 配置

flutter:plugin:platforms:android:package:com.linusu.flutter_web_authpluginClass:FlutterWebAuthPluginohos:package:com.linusu.flutter_web_authpluginClass:FlutterWebAuthPluginios:pluginClass:FlutterWebAuthPluginmacos:pluginClass:FlutterWebAuthPluginweb:pluginClass:FlutterWebAuthWebfileName:flutter_web_auth_web.dart

8.2 ohos 平台字段

字段说明
packagecom.linusu.flutter_web_auth包名(与 Android 相同)
pluginClassFlutterWebAuthPluginArkTS 类名

8.3 与其他插件的对比

插件需要 package需要 fileName
flutter_web_auth
secure_application
flutter_speech

💡不同插件的 ohos 平台配置方式不完全一样。有的需要 package,有的需要 fileName,取决于 Flutter-OHOS 框架的版本和插件的注册方式。

九、工程搭建检查清单

9.1 文件检查

  • ohos/oh-package.json5存在且 name 正确
  • ohos/build-profile.json5存在且 apiType 为 stageMode
  • ohos/src/main/module.json5存在且 type 为 har
  • ohos/index.ets存在且导出路径正确
  • ohos/hvigorfile.ts存在
  • ohos/src/main/ets/components/plugin/FlutterWebAuthPlugin.ets存在

9.2 配置一致性检查

  • oh-package.json5 的 name 与 pubspec.yaml 的 name 一致
  • pubspec.yaml 中 ohos.pluginClass 与 ArkTS 类名一致
  • index.ets 的 import 路径指向正确的文件

9.3 常见搭建错误

错误原因解决
插件未被识别pubspec.yaml 缺少 ohos 平台添加 ohos 配置
编译失败module.json5 格式错误检查 json5 语法
类找不到index.ets 导出路径错误修正 import 路径
注册失败pluginClass 名称不匹配确保名称一致

总结

本文详细讲解了 flutter_web_auth 的 OpenHarmony 插件工程搭建:

  1. 目录结构:标准的 ohos/ 目录布局,6个关键文件
  2. oh-package.json5:包名必须与 pubspec.yaml 一致
  3. module.json5:type 为 har,支持 default 和 tablet
  4. index.ets:入口导出,路径必须正确
  5. pubspec.yaml:ohos 平台声明 pluginClass

下一篇我们讲 FlutterPlugin 与 AbilityAware 双接口实现——flutter_web_auth 为什么需要 AbilityAware。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • OpenHarmony HAR 包开发
  • oh-package.json5 规范
  • module.json5 配置
  • Flutter-OHOS 插件开发
  • flutter_web_auth Gitcode
  • Hvigor 构建系统
  • pubspec.yaml 插件配置
  • 开源鸿蒙跨平台社区
http://www.jsqmd.com/news/408339/

相关文章:

  • 通过西门子平台API获取搜索列表数据的技术实践
  • 2026年广州小篆打印机推荐,靠谱品牌值得关注 - myqiye
  • 2026年高拍仪价格分析,探寻高拍仪传输方式及靠谱推荐 - 工业设备
  • 进程和线程的区别和联系
  • 生产质量管理体系全过程流程图
  • 2026年2月上海月嫂/保姆/养老护理/母婴护理/家电清洗/家电维修/房屋出租/宠物护理机构综合推荐报告——专业选型,规避痛点 - 2026年企业推荐榜
  • 2026年2月成都实验室VAV系统/实验室系统/实验室家具/实验室台柜/实验室装修/实验室建设厂家综合测评 - 2026年企业推荐榜
  • 隐形车衣定制口碑推荐:2026年这些款式超火,贴太阳膜/隐形车衣/贴车衣/车衣改色/太阳膜,隐形车衣定制选哪家 - 品牌推荐师
  • Linux中grep命令匹配制表符
  • 为什么虚幻引擎 5.5 将在 2026 年主导移动端与 VR 建筑可视化?
  • 2026年明星代言中介公司联系电话推荐:核心渠道与沟通要点 - 品牌推荐
  • 2026年银座购物卡回收变现最新1分钟操作指南 - 淘淘收小程序
  • 2026年喷绘厂家权威推荐榜:喷绘公司电话、墙体喷绘广告制作、墙体喷绘广告安装公司、墙体彩绘价格、墙体彩绘公司选择指南 - 优质品牌商家
  • 避坑指南:2026 矿山设计冶炼设计厂家 TOP3 实测,中蒂设计院闭眼选不踩雷 - 深度智识库
  • 2026年显微镜品牌厂家推荐:基于工业检测与科研场景深度评测,解决定制化与稳定性痛点 - 品牌推荐
  • 2026年市场优秀的防爆气动葫芦生产厂家口碑排行榜单,2吨气动葫芦/化纤气动葫芦,防爆气动葫芦供应商怎么选购 - 品牌推荐师
  • 2026年评价高的硬质快速门公司推荐:pvc堆积式快速门、堆积工业门、堆积车库门、堆积门厂家、堆积门采购选择指南 - 优质品牌商家
  • 当 Agent 要 7×24 在线,LLM 反而成了最贵的那一环
  • 2026年畅享优品深度解析:高端宠粮国货标杆的立身之本与市场盘点 - 品牌推荐
  • @RequestBody 注解处理的数据类型
  • 2026涡轮增压器需求,潍柴P10H.5增压器实力厂家选择技巧,金刚炮升压器/农机增压器,涡轮增压器零售推荐榜单 - 品牌推荐师
  • 港大开源!轻量RAG框架 LightRAG,上线一周冲上GitHub趋势榜
  • 四川再生资源回收红榜:五大优质变压器回收服务商推荐 - 深度智识库
  • 德铁轨道设备客户评价如何,2026年轨道设备选购攻略分享 - myqiye
  • django基于python的贫困生资助管理系统(编号:17081901)
  • 2026年畅享优品深度盘点:高端宠食国货标杆的立身之本与未来展望 - 品牌推荐
  • BMAD开发效率翻倍: 一条命令交付整个Epic
  • django基于python的养老院健康跟踪系统分析与设计(编号:743441180)
  • 怎么选择奢侈品回收服务,口碑的奢侈品回收店推荐 - mypinpai
  • 榨干seedance2.0我用它做全员营销