HarmonyOS鸿蒙Next中Weex鸿蒙版适配

HarmonyOS鸿蒙Next中Weex鸿蒙版适配 【问题描述】项目是用Weex开发的,在Weex文档上没看到有支持HarmonyOS平台的描述,请问这个咱们有计划适配吗?Weex文档上只标明只Android和iOS

【问题现象】如果Weex暂不支持鸿蒙,开发的项目想要迁移到鸿蒙上来,该如何处理?

Weex文档地址:什么是 Weex ? | WEEX

10 回复

尊敬的开发者您好,
关于Weex 在HarmonyOS 上的适配问题,建议您参考weex HarmonyOS化指导文档获取详细指引。如有其他疑问或需要进一步的技术支持,也可前往weex社区交流反馈。

更多关于HarmonyOS鸿蒙Next中Weex鸿蒙版适配的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


  1. 适配计划:Weex官方文档目前仅支持Android和iOS,询问是否有适配鸿蒙系统的计划。
  2. 迁移方案:如果Weex暂不支持鸿蒙,现有的Weex项目该如何迁移到鸿蒙系统上。

结合当前的技术现状,我为你整理了针对这两个问题的详细分析与建议:

Weex鸿蒙版适配现状

目前Weex官方并没有明确的鸿蒙系统适配计划。Weex作为一个早期的跨平台框架,其社区活跃度和更新频率近年来已大幅下降。在鸿蒙生态(HarmonyOS NEXT)快速发展的当下,主流的关注点主要集中在Flutter、React Native以及华为原生的ArkTS/ArkUI上。

因此,不要期待Weex官方会推出原生的鸿蒙支持版本。如果你的项目严重依赖Weex,继续等待官方适配可能不是一个可行的策略。

现有Weex项目的迁移建议

既然官方不支持,对于想要迁移到鸿蒙的Weex项目,建议采取以下几种过渡或重构方案:

短期过渡方案:使用WebView容器

如果项目急需在鸿蒙设备上运行,且重构成本过高,可以考虑WebView方案

  • 原理:鸿蒙系统支持标准的Web组件。你可以将Weex页面降级为H5页面,或者利用鸿蒙的WebView能力来加载原有的Web资源。
  • 优缺点
    • 优点:迁移成本最低,改动最小,能快速跑通业务流程。
    • 缺点:无法享受鸿蒙原生的高性能体验,无法调用深层的系统能力(如分布式流转、高级动画等),体验上会有明显的割裂感。

长期重构方案:转向ArkTS或主流跨端框架

为了实现鸿蒙原生的流畅体验和完整功能,重构是必经之路。

  • 方案A:转向ArkTS(推荐) 这是华为官方推荐的开发语言。利用ArkUI框架,你可以开发出性能最强、体验最好的鸿蒙应用。

    • 适合场景:对性能要求高,需要深度调用系统能力(如摄像头、传感器、分布式数据)的应用。
    • 成本:需要团队学习ArkTS和ArkUI,开发成本相对较高,但收益最大。
  • 方案B:转向React Native或Flutter 如果你的团队更熟悉React或Flutter技术栈,可以考虑将业务逻辑迁移到这些框架,因为它们对鸿蒙的支持正在逐步完善。

    • React Native:社区已有相关适配尝试,对于熟悉React的团队上手较快。
    • Flutter:Google和鸿蒙社区都在推进适配,适合追求高保真UI和跨平台一致性的场景。

总结建议

针对图片中的需求,我的建议是:放弃等待Weex官方适配

对于现有的Weex项目,建议采用**“H5过渡 + 逐步重构”**的策略。先将核心业务以H5形式在鸿蒙的WebView中运行,保证业务不中断;同时,利用鸿蒙提供的多端开发能力,逐步将核心页面重写为ArkTS原生页面,最终实现完全的原生化。

你贴出来的官方文档里没有写,但是开源仓库端已经有人提交了鸿蒙化的适配:

https://github.com/alibaba/weex/tree/master/ohos

你可以研究一下哦!

当前 Weex 框架,没有鸿蒙 SDK 版本。Weex-Web 替代方案路线与 weex 鸿蒙平台 SDK 路线不同,使用了 ArkWeb + 原生ArkTS 混合方式替代 Weex 1.0 框架,没有对 Weex 框架自身侵入式增加鸿蒙端平台的适配, 而是提供 babel/webpack 插件等脚本,在编译期对 weex 工程进行少许源码改动,注入鸿蒙相关适配代码,最后打包成bundle产物运行在 ArkWeb 容器来达到鸿蒙化 weex 项目的目的。

具体可参考地址:weex鸿蒙化

目前公开信息看,Weex 官方并没有把 HarmonyOS 列为正式支持平台。Weex 官网对外描述仍主要是 Web / Android / iOS官网首页What is Weex? 都没有公开的 HarmonyOS 平台说明。 同时,华为侧虽然有一篇 “Weex框架+H5接入智能填充” ,但文档里写得很明确:“目前仅支持已适配 HarmonyOS 的三方框架应用使用”。这说明的是“如果你的 Weex 应用已经有 HarmonyOS 版本,可以接这个能力”,不等于 Weex 官方已经提供 HarmonyOS Runtime/SDK 适配

所以这题的结论可以直接说:

结论

  1. 现阶段不能按“Android/iOS 那样直接新增一个 HarmonyOS 平台”来理解 Weex。
  2. 公开文档里也没看到 Weex 官方明确的 HarmonyOS 适配计划。
  3. 如果你们 Weex 项目要迁到鸿蒙,通常要走“迁移方案”,而不是等 Weex 原生支持。

如果 Weex 暂不支持,怎么迁

要看你们现有项目到底是哪一类。

方案 1:短期快速上线

适合:

  • 页面主要是活动页、表单页、内容展示页
  • 原本 Weex 里很多页面本质接近 H5
  • 对原生能力依赖不重

做法:

  • 先把这类页面迁成 H5
  • HarmonyOS 端用 Web 组件承载
  • 登录态、分享、支付、拍照、定位等通过 JSBridge/原生桥接补齐

优点:

  • 成本最低
  • 可以最快先上鸿蒙版本

缺点:

  • 体验、性能、复杂交互不如原生
  • 列表、大动画、复杂手势、长链路状态管理后面还是会吃亏

这条路比较适合“先活下来”。

方案 2:中期主流迁移

适合:

  • 业务还会长期维护
  • 页面量比较多
  • 想保留一部分跨端研发模式

做法一般有两种:

  1. 迁 ArkUI/ArkTS

    • 鸿蒙原生方案
    • 性能、平台能力、上架适配最好
    • 但要重写 UI 层
  2. 迁到已有 HarmonyOS 适配更明确的跨端方案

    • 比如你们团队如果已有相关积累,可评估 Flutter/OpenHarmonyReact Native OpenHarmonyuni-app x
    • 但也不要理解成“零改造迁移”,仍然会有平台差异和插件适配成本

如果你问我更稳的建议:

  • 长期看,核心业务建议迁 ArkUI/ArkTS
  • 非核心活动/运营页可以保留 H5

不建议的路

自己给 Weex 补一个 HarmonyOS Runtime

理论上不是完全不可能,但实际很不划算。

因为 Weex 不是只补一个壳就完了,还涉及:

  • JS Runtime 适配
  • 渲染层对接
  • 组件体系适配
  • 原生模块桥接
  • 调试工具链
  • 三方插件生态
  • HarmonyOS 生命周期/路由/窗口模型适配

这相当于自己维护一套平台分支,后续成本很高。 除非你们公司本身就有底层框架团队,否则一般不建议

一个比较现实的迁移策略

我建议按这个顺序拆:

  1. 先盘点页面

    • 纯展示/表单页
    • 复杂交互页
    • 强原生能力页
  2. 按页面分流

    • 展示/活动页 -> 先 H5 + Web
    • 首页、核心交易、消息、账户中心 -> ArkUI 重写
    • 强原生能力页 -> ArkUI 直做
  3. 把 Weex 的公共逻辑抽出来

    • 接口层
    • 数据模型
    • 埋点协议
    • 权限/路由约定
    • 主题/国际化资源
  4. 重新设计鸿蒙端容器层

    • 登录态管理
    • Web 容器
    • 原生桥接
    • 路由跳转
    • 支付/分享/上传下载/设备能力

你们如果是 Vue 风格 Weex,最常见的误区

很多团队会想:

  • “Weex 也是前端语法,能不能直接改少量代码跑鸿蒙?”
  • “能不能像 uni-app 一样编译过去?”

通常答案是:不能直接这么想

原因是 Weex 的“跨端”依赖的是它自己的运行时和组件/模块实现, 现在缺的不是“语法兼容”,而是 HarmonyOS 对应的平台运行时

实操建议

如果你们现在要立项迁移,我建议这么定:

最稳方案

  • 核心页面:ArkUI/ArkTS 重写
  • 非核心运营页:H5 化后 Web 承载
  • 公共业务逻辑:尽量抽到服务层/协议层复用

不建议

  • 继续押注 Weex 官方会很快出 HarmonyOS 支持
  • 自建完整 Weex HarmonyOS 运行时

一句话总结

目前没有看到 Weex 官方公开的 HarmonyOS 正式支持或明确适配计划。 如果项目要迁到鸿蒙,建议走 “H5 兜底 + ArkUI 重构核心页面” 的路线,而不是等 Weex 直接支持。

如果以稳定落地为目标,不建议把 Weex 当成 HarmonyOS 原生适配主路线。现有 Weex 页面体量大时,可以先用 ArkWeb/Web 容器承载,登录、支付、相机、定位等能力通过 JSBridge 调原生 Ability 过渡;但高频页面、性能敏感页面和系统能力调用多的页面,建议逐步改成 ArkUI/ArkTS。迁移前先抽出接口、路由参数、埋点和状态管理协议,避免一边迁移一边改业务。社区/仓库里的 ohos 适配要区分实验能力和长期维护能力,最终仍建议核心体验原生化。

  1. 要快速上架,就用weex H5端,配合鸿蒙ArkWeb。

  2. 不急,自己重构部分,有js基础,也快。

  3. 长期,可以期待下官方,也得看weex的发展趋势。

使用webview嵌套一下试试,可以参考:

使用Web组件加载本地网页

https://developer.huawei.com/consumer/cn/blog/topic/03211848974768386

在HarmonyOS NEXT上,Weex的鸿蒙版适配主要依赖其跨平台引擎迁移至ArkTS/ArkUI体系。当前Weex官方未提供正式鸿蒙Native SDK,但可通过自建DSL桥接层,将Weex的JS运行时对接鸿蒙的声明式UI组件(如Button、Text等),实现部分页面渲染。核心难点在于自定义组件映射、事件系统对齐及原生模块的HarmonyOS API替换。

Weex 官方并未发布 HarmonyOS 平台的适配计划,当前框架仅支持 Android 和 iOS。如果项目需迁移到 HarmonyOS Next,Weex 无法直接运行。迁移方案主要有两种:一是基于 ArkUI 进行前端重构,用 ArkTS 替代 Weex 的 Vue/DSL,该方案性能与生态兼容最好;二是在鸿蒙 WebView 中继续运行 Weex 的 Web 产物,保留原 H5 页面,但性能和体验受限,不适合复杂交互场景。不推荐等待官方适配,直接重构是更稳妥的路径。

回到顶部