HarmonyOS 鸿蒙Next uniapp开发的项目可以直接原项目编译到DevEco Studio吗

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next uniapp开发的项目可以直接原项目编译到DevEco Studio吗

uniapp开发的项目可以直接原项目编译到DevEco Studio吗

2 回复

对应uni-app工程,支持HBuilderX和命令行两种方式转换,当前因命令行更新更灵活,可更快拿到适配的版本,HBuilderX依赖发版,节奏稍慢。

HBuilderX开发工程适配 获取最新HBuilderX版本,需要下载最新的alpha版本 https://www.dcloud.io/hbuilderx.html。

获取离线包工程,可从如下地址获取最新版本https://uniapp.dcloud.net.cn/harmony/dev.html。

在工程的manifest.json文件中增加如下配置

"app-harmony": {
"projectPath": "离线包工程路径"
}
 

点击HBuilderX的"运行"——>"运行到鸿蒙 DevEco Studio",需要先配置上述app-harmony配置才可出现入口,点击即可导出uni-app到鸿蒙模板工程。

命令行开发工程适配 获取离线包工程,可从如下地址获取最新版本https://uniapp.dcloud.net.cn/harmony/dev.html。

在工程的src/manifest.json文件中增加如下配置。

"app-harmony": {
"projectPath": "离线包工程路径"
}
 

在工程的package.json中script下增加如下命令

"script":{
    ...
    "dev:app-harmony": "uni -p app-harmony",
    ...
    "build:app-harmony": "uni build -p app-harmony",
}
 

在依赖中增加对鸿蒙的依赖,并更新所有@dcloudio/uni相关的包的版本号,包括devDependencies中的依赖,其中3.0.0-alpha-4020120240618002 版本可时刻关注npm上最新版本号进行更新。

 "dependencies": {
    "@dcloudio/uni-app": "3.0.0-alpha-4020120240618002",
    "@dcloudio/uni-app-harmony": "3.0.0-alpha-4020120240618002",
    "@dcloudio/uni-app-plus": "3.0.0-alpha-4020120240618002",
    "@dcloudio/uni-components": "3.0.0-alpha-4020120240618002",
    "@dcloudio/uni-h5": "3.0.0-alpha-4020120240618002",
    "@dcloudio/uni-mp-alipay": "3.0.0-alpha-4020120240618002",
    ...
}
 

执行依赖更新,npm install更新。

执行npm run dev:app-harmony来编译成鸿蒙。

如现有工程是HBuilderX工程,可参考uni-preset-vue-vite-alpha.zip进行工程化改造,只需把HbuilderX的代码放入src目录下即可。

代码适配 uni-app针对鸿蒙新增了APP-HARMONY条件编译,针对需要适配的功能使用条件编译进行控制,如下,通过此修改可以解决大部分问题。

 // #ifdef APP-PLUS || APP-HARMONY
 pages = getCurrentPages();
 // #endif
 

沉浸式高度适配,当前模板工程中web组件是适配了沉浸式,需要开发者自行避让状态栏,支持在manifest中配置safearea配置,具体可参考uni-app官网。

部分uni-app标记弃用的接口可更新到新接口上,如upx2px替换成rpx2px。

更多关于HarmonyOS 鸿蒙Next uniapp开发的项目可以直接原项目编译到DevEco Studio吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next环境下,使用uniapp开发的项目无法直接原项目编译到DevEco Studio。uniapp主要基于Vue.js框架,并通过一套代码编译到多个平台(如H5、小程序、App等),但其原生编译目标并不包含HarmonyOS的DevEco Studio环境。

HarmonyOS应用开发通常使用Java、JS(含ArkUI框架的ETS语言)或C/C++进行开发,DevEco Studio是华为提供的专门用于HarmonyOS应用开发的IDE,支持上述语言的编译与调试。若要将uniapp项目移植到HarmonyOS平台,需要进行一定的重构和适配。

具体步骤可能包括:

  1. 提取uniapp项目的业务逻辑与界面代码。
  2. 根据HarmonyOS的开发规范,使用ArkUI(JS)或Java重新构建界面与逻辑。
  3. 在DevEco Studio中创建新项目,并导入重构后的代码。
  4. 编译并运行项目,进行调试与优化。

因此,直接编译uniapp项目到DevEco Studio是不可行的,需要手动迁移与重构。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部