uni-app 鸿蒙APP热更新问题

uni-app 鸿蒙APP热更新问题

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 14.6.1
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 HarmonyOS NEXT
手机系统版本号 HarmonyOS NEXT Developer Beta2
手机厂商 华为
手机机型 Mate 60 Pro
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

操作步骤:

  • HBuilderX选择 运行 - 运行到手机或模拟器 - 运行到鸿蒙

预期结果:

生成 entry/src/main/resources/resfile/apps/uni-app应用标识命名的文件夹
EntryAbility里面的应该是 super("uni-app应用标识命名的文件夹"

实际结果:

生成 entry/src/main/resources/resfile/apps/HBuilder
EntryAbility里面的super("HBuilder"

bug描述:

手机OS系统版本: 是 HarmonyOS NEXT 5.0.0.123 SP19
编译运行 鸿蒙APP后发现 APP热更新存在问题。

  • entry/src/main/resources/resfile/apps/HBuilder 应该是 entry/src/main/resources/resfile/apps/uni-app应用标识命名的文件夹
  • EntryAbility里面的super("HBuilder" 应该是 super("uni-app应用标识命名的文件夹"

更多关于uni-app 鸿蒙APP热更新问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

@dcloudio/uni-app-runtime 相关的依赖版本可以搜索编译处理的鸿蒙工程

更多关于uni-app 鸿蒙APP热更新问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


通过修改和查看编译生成的鸿蒙工程uniapp工程/unpackage/debug/app-harmony-xxxxx/oh_modules/.ohpm/@dcloudio+uni-app-runtime@idazlhvgikh3aw++r+ncdsd8lhisx+iuufxvzpgrtyy=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js文件发现其实内部是实现了热更新相关的接口。
关键接口 import { isExistsUniMP, getUniMPRunPath, releaseWgtToRunPath, getAppVersionInfo } from ‘@dcloudio/uni-app-runtime’
参考 https://ask.dcloud.net.cn/question/201598
示例:
export const wgtInstall: Install = function(mpId: string, path: string, callback ?: CallbackForBoolean) {
releaseWgtToRunPath(mpId, path, (code: 1 | -1, error?: Error)=>{
Logger.info(TAG, 'code '+ code)
Logger.info(TAG, 'getAppVersionInfo '+ JSON.stringify(getAppVersionInfo(mpId)))
callback?.(code == 1)
})
}

需要自己再手动修改HBuilderX编译出来的鸿蒙工程才能实现热更新,希望后续的HBuilderX能修复这个问题

实测选择 发行 - App-Harmony-本地打包 也有同样的问题

APP热更新的核心是将下载的wgt文件解压到 getContext().filesDir ‘/apps/替换成你的uni-app应用标识/www’,解压后重启APP

请问您是怎么解决的?能不能说具体一点

回复 l***@mellson.com: 具体的已发布到这里 https://blog.csdn.net/dengly/article/details/147577038

回复 9***@qq.com: 能改下文章类型吗, 默认vip文章了, csdn 有点坑

回到顶部