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

uni-app x正式支持鸿蒙原生应用开发

DCloud发布的HBuilderX 4.64正式版,支持编译uni-app x项目到鸿蒙平台,实现跨平台开发鸿蒙原生应用。至此,uni-app x 已经完成Android、iOS、鸿蒙、Web、微信小程序等主流平台全覆盖。

uni-app x,是下一代 uni-app,是一个原生的跨平台开发框架。

uni-app x 的革新性在于其“开发态基于Web技术栈,运行时编译为原生代码”的设计。开发者依然使用熟悉的Vue语法与类TypeScript的UTS语言编写代码,编译到鸿蒙平台时,代码会被转换为鸿蒙NEXT的原生语言ArkTS,并基于ArkUI渲染引擎运行,没有虚拟机、没有js引擎、没有webview,实现真正的系统原生性能

欢迎使用鸿蒙手机扫描下方二维码,或去鸿蒙应用商店搜索“DCloud开发者中心系统”体验示例。

uni-app x的高性能得益于:

  • 编译为原生语言

uni-app x编译器,可以将UTS语言直接编译为各个平台的原生代码:

  1. to Android:编译为kotlin代码
  2. to iOS:编译为swift代码
  3. to 鸿蒙:编译为ArkTS代码
  4. to Web和小程序:编译为js代码
  • 运行时优化

基于不同平台的原生view封装为跨平台的、统一的原生UI库。

将不同平台的原生能力API,封装为统一的UTS插件,通过interface统一输入输出,形成了网络、文件系统、多媒体等大量统一的跨平台API。

由于逻辑层与视图层均在原生进程中运行,避免了跨语言通信的延迟问题,启动速度和交互流畅度可媲美原生开发。

这种设计让开发者既能享受Web技术栈的高效开发,又能获得原生应用的性能体验,真正实现“鱼与熊掌兼得”。

uni-app x的演示应用已上架鸿蒙应用商店,你可以通过单框架版本的纯血鸿蒙手机,在应用市场搜索“DCloud开发者中心系统”安装体验,该应用详细演示了uni-app x在鸿蒙平台上支持的各种组件、API、CSS以及部分模版示例。

在模板->slider100示例中,页面中有100个slider组件,拖动其中1个滑块,剩余99个滑块会同步移动。这非常考验逻辑层和视图层的通信性能。欢迎开发者使用相同示例在其他跨平台工具下比较,甚至可以用ArkUI的声明式写法来对比,看看哪个更丝滑。其他框架开发的经常会出现不跟手、掉帧的情况。

至此,DCloud面向鸿蒙平台,已正式发布uni双引擎,支持不同类型的开发者,快速开发鸿蒙应用:

  1. uni-app:基于经典的Hybrid App架构,逻辑层、视图层分离实现,使用webview渲染,对存量的uni-app项目开发者非常友好,帮助开发者以极低的代价,完成存量数字应用(包括基于uni-app开发的App、各家小程序、H5等)的鸿蒙化转换。
  2. uni-app x:基于语言翻译实现,开发态使用Web技术栈,运行态转为平台原生语言,使用原生组件和原生渲染,可以获得和原生开发一样的运行体验,更适合对性能体验要求更高的开发者。

站在2025年的技术拐点上,我们目睹了国产操作系统从愿景走向现实,在今日中国之背景下,鸿蒙适配已从“做不做”,升级为“怎么做”。

Android、iOS、鸿蒙、web、小程序,每个平台都可以各自开发一套。但这必然不是聪明的做法。开发者一直希望找到一款好的跨平台框架,而过去的跨平台框架的性能一直无法令大型开发者满意。Flutter独立运行虽然性能不错,但调用原生能力、嵌入原生组件时,性能又下降,并且flutter在鸿蒙上没有官方支持,dart生态的很多插件迁移不到鸿蒙上,实际开发效率较低。

uni-app x作为一个真正原生化的跨平台开发工具,让开发者不用再顾忌跨平台框架的性能问题,没有js引擎和webview渲染。在运行时都是原生编程语言、原生UI。调用操作系统能力、调用原生组件时,都没有跨语言通信、跨渲染引擎滚动,操作顺畅丝滑。

除了高性能外,生态非常重要。uni-app x除了自身提供大量组件和API外,还有丰富的插件生态。插件市场已经有数千款uni-app x的插件,其中不少插件已支持鸿蒙next。接下来DCloud还将举办2025年插件大赛,进一步活跃插件生态。详见:DCloud 插件市场 。

当然还需要强调一点,uni-app x中不用插件也可以调用鸿蒙系统原生的数万API,这与其他跨平台开发工具不同。其他跨平台工具都需要手动封装插件,插件数量不够会严重卡住开发进度。

下面代码示例看到,开发者在vue页面中可以直接引用ohos的系统库,因为其实这段vue代码最终也被编译运行到arkts引擎中,自然可以调用所有系统能力。

<template>
<!-- 页面模版代码 -->
</template><script>import deviceInfo from '@ohos.deviceInfo';export default {onLoad() {// 前端Vue页面,直接调用鸿蒙arkTS代码console.log("设备类型:" + deviceInfo.deviceType)console.log("设备厂家:" + deviceInfo.manufacture)}}
</script><style>
/* 样式代码 */
</style>

欢迎开发者使用 uni-app x开发鸿蒙原生应用。它可以帮助你使用简单易用的vue语法,更高效的完成应用开发,且不影响性能。

当鸿蒙版使用uni-app x后,你还可以同时渐进式重构之前的Android和iOS原生应用,在原生应用中引入uni-app x原生sdk,将部分页面模块跨端统一为uni-app x实现。

uni-app x的资源:

文档:https://doc.dcloud.net.cn/uni-app-x/ 。

示例体验:使用鸿蒙手机扫描下方二维码,或去鸿蒙应用商店搜索“DCloud开发者中心系统”。

相关文章:

  • 【HTML5学习笔记1】html标签(上)
  • mac M芯片运行docker-desktop异常问题
  • Protobuf——Protocol Buffer详解(1)
  • 基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解
  • 【Python CGI编程】
  • 网络安全基础第11-13集
  • 香橙派Zero3跨网络音乐服务系统搭建与内网穿透技术应用实践
  • GESP2025年3月认证C++二级( 第三部分编程题(1)等差矩阵)
  • 深入剖析Spring Boot参数校验:实现原理、自定义注解组件与国际化多语言实践
  • allure报告自定义logo和名称
  • 网络安全-等级保护(等保) 2-5-1 GB/T 25070—2019 附录B (资料性附录)第三级系统安全保护环境设计示例
  • 深入解析Shell脚本编程:从基础到实战的全面指南
  • 高效便捷的文字识别方案与解析
  • 将 Element UI 表格元素导出为 Excel 文件(处理了多级表头和固定列导出的问题)
  • rocketmq 环境配置[python]
  • 7-15 计算圆周率
  • 增量学习:机器学习领域中的资源高效利用秘籍
  • 大语言模型 09 - 从0开始训练GPT 0.25B参数量 补充知识之数据集 Pretrain SFT RLHF
  • C++23 中的 ranges::fold_left:范围折叠算法
  • C语言进阶-数组和函数
  • 没有握手,采用翻译:俄乌三年来首次直接会谈成效如何?
  • 音乐节困于流量
  • 中国人民银行等四部门联合召开科技金融工作交流推进会
  • 美F-35险被胡塞武装击中,损失增大让行动成“烂尾仗”
  • 商务部回应美方加严限制中国芯片:敦促美方立即纠正错误做法
  • 因港而兴,“长江黄金水道”上的宜宾故事