9***@qq.com
9***@qq.com
  • 发布:2025-02-13 22:01
  • 更新:2025-02-13 22:04
  • 阅读:10

【报Bug】鸿蒙APP热更新问题

分类:鸿蒙Next

产品分类: 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应用标识命名的文件夹"
2025-02-13 22:01 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com (作者)

通过修改和查看编译生成的鸿蒙工程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)  
    })  
}
  • 9***@qq.com (作者)

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

    2025-02-13 22:10

要回复问题请先登录注册