-
一,问题说明原先已实现 UniAPP 项目转鸿蒙,客户提出需要实现类似于微信加载多个小程序并能热更新二、需求分析实现热更新需要能够动态加载小程序资源包,原先的方案是将小程序项目直接打包进鸿蒙 hap中,只支持单个小程序不支持热更新三、解决思路通过查阅UniApp 官方网站,找到小程序动态加载方案及sdk,根据客户需求进行开发适配实现需求四、解决方案可通过 DCloud 平台配置小程序热更新资源包,或将 wgt 资源包上传自己的服务器,app下载资源包更新(一).开发环境DevEco-Studio 5.0.3.800 以上鸿蒙系统版本 API 12 以上 (DevEco-Studio有内置鸿蒙模拟器)HBuilderX-4.27+ 下载uni小程序 SDK不支持x86模拟器(二).配置uni小程序SDK1.修改鸿蒙项目根目录文件 oh-package.json5 的依赖 "@dcloudio/uni-app-runtime": "版本号" 2.点击右上角 Sync Now,并等待 Sync 结束(三).通过wgt包导入小程序应用资源选中您的 uni-app 项目,右键->发行->App-制作应用wgt包 项目编译完成后会在控制台,输出wgt包的路径,点击路径可以直接打开wgt所在目录 如图,__UNI__6275E02.wgt 就是应用资源包,(__UNI__6275E02 为小程序的 appid)如果提示导出失败,请删除项目根目录 manifest.json 源码里的 app-harmony 属性 将生成的wgt包拷贝到 entry/src/main/resources/resfile 目录下,如下图所示 再通过 releaseWgtToRunPath 函数释放 wgt 包到运行目录,最后通过 openUniMP 函数打开小程序,代码如下import { openUniMP,isExistsUniMP, releaseWgtToRunPath } from '@dcloudio/uni-app-runtime';@Entry@Componentstruct Index { @State message: string = 'Hello World'; build() { RelativeContainer() { Text(this.message) .id('HelloWorld') .fontSize(50) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(async ()=>{ const mpId = "__UNI__6275E02" await new Promise<void>((resolve, reject) => { try { // 判断应用是否已释放到运行目录 let isExists = isExistsUniMP(mpId) console.log("isExists:"+isExists) // 拼接wgt包路径 let path = getContext().resourceDir + "/"+mpId+".wgt" // 释放 wgt 包到运行目录 releaseWgtToRunPath(mpId,path, (code:number, data: object)=>{ console.log(JSON.stringify({code,data})) resolve() }) } catch(err){ reject(err) } }) // 启动小程序 const mp = openUniMP(mpId) mp.on('close',()=>{ console.log('UniMP-close') }) mp.on('show',()=>{ console.log('UniMP-show') }) mp.on('hide',()=>{ console.log('UniMP-hide') }) }) } .height('100%') .width('100%') }}
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签