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
@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 有点坑