HarmonyOS鸿蒙Next中是否支持 WebAssembly(Wasm)?能否在 ArkTS 中调用 .wasm 模块?
HarmonyOS鸿蒙Next中是否支持 WebAssembly(Wasm)?能否在 ArkTS 中调用 .wasm 模块? 有一个用 Rust 编写的图像压缩算法,已编译为 Wasm。能否直接在鸿蒙 App 的 Web 组件或 ArkTS 中运行?
JSVM-API WebAssembly 接口提供了 WebAssembly 字节码编译、WebAssembly 函数优化、WebAssembly cache 序列化和反序列化的能力。
权限要求:WebAssembly相关接口需要应用拥有JIT权限才能执行,可参考JSVM 申请JIT权限指导申请对应权限。
运行限制:当前 JSVM 版本在坚盾守护模式下将禁用 WebAssembly 全部功能模块。开发者需针对此限制进行应用兼容性评估,具体技术规范详见JSVM 坚盾守护模式。
更多关于HarmonyOS鸿蒙Next中是否支持 WebAssembly(Wasm)?能否在 ArkTS 中调用 .wasm 模块?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
考虑使用 https://github.com/ohos-rs/ohos-rs 重编译下模块并暴露了。
鸿蒙原生不支持 WebAssembly:
Web组件基于 Chromium,但禁用了 Wasm 执行环境(出于安全考虑);- ArkTS 运行时(Ark Runtime)无 Wasm 解释器;
HarmonyOS Next支持WebAssembly。在ArkTS中可以通过@ohos.web.webassembly模块加载和调用.wasm文件。具体使用方式包括:通过load方法加载wasm模块,然后调用导出函数。该功能适用于需要高性能计算的场景,如游戏、音视频处理等。
目前HarmonyOS Next暂未原生支持WebAssembly(Wasm)模块的直接加载与执行。ArkTS作为主要应用开发语言,其运行时环境(ArkTS Runtime)并未内置Wasm解释器或编译器,因此无法直接调用或运行.wasm二进制模块。
对于Web组件,虽然其基于系统浏览器内核,理论上可支持Wasm,但鸿蒙Next的Web组件能力取决于系统WebView的具体实现。当前官方文档未明确说明对Wasm的完整支持,且涉及性能与安全限制,不建议作为核心功能依赖。
建议方案:
- 功能迁移:将Rust算法逻辑用ArkTS/NAPI重写,或编译为C++库通过NDK集成。
- 服务化部署:将Wasm模块部署为云端服务,通过HTTP调用。
- 关注官方更新:未来版本可能会在ArkTS Runtime或Web组件中增加Wasm支持。
当前阶段,若需在鸿蒙Next中复用Wasm模块,需通过间接方式实现。

