一桶浆糊
一桶浆糊
  • 发布:2026-01-07 12:18
  • 更新:2026-01-07 12:18
  • 阅读:25

【报Bug】uniapp鸿蒙wgt热更新无效?

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS 5.1.0

手机厂商: 华为

手机机型: nova14

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

const downloadTask = uni.downloadFile({
url: this.data.edition_url,
success: res => {
console.log('res.statusCode----->',res.statusCode)
if (res.statusCode === 200) {
console.log('res.statusCode === 200')
plus.runtime.install(
res.tempFilePath, {
force: true //true表示强制安装,不进行版本号的校验;false则需要版本号校验,
},
function() {
// console.log('success', success);
console.log('package_type---->',package_type)
if (package_type == 1) {
console.log('plus.runtime.restart()>')
// #ifdef APP-HARMONY
uni.showModal({
title: '更新完毕',
content: '请手动重启',
showCancel: false,
success(res) {
plus.runtime.quit()
}
})
// #endif
// #ifdef APP-PLUS
//更新完重启app
plus.runtime.restart();
// #endif
}
},
function(e) {
//提示部分wgt包无法安装的问题
that.data.edition_force = 0;
uni.showToast({
title: e.message,
icon: 'none',
duration: 2500
})
setTimeout(() => {
uni.navigateBack()
}, 2000)

                            }  
                        );  
                        if (package_type == 0) {  
                            // 解决安装app点击取消,更新还在的问题  
                            this.data.edition_force = 0;  
                            uni.navigateBack();  
                        }  
                    }  
                }  
            });

操作步骤:

在普通的vue页面修改字眼,如“暂无公告”改为“暂无公告WGT”

预期结果:

页面显示“暂无公告WGT”

实际结果:

页面显示暂无公告

bug描述:

通过发行-APP-制作应用WGT包,
通过plus.runtime.installapi安装
安装后重启了应用,但是没效果,版本号也没有任何变化

2026-01-07 12:18 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该bug反馈内容基本完整,提供了清晰的标题、环境信息、代码示例、复现步骤及结果。但缺少关键细节:未说明HBuilderX编译的wgt包版本与手机上已安装应用的uniRuntimeVersion是否匹配(这是wgt热更新的核心条件),且未提及安装过程中是否有错误提示。

经分析,此问题不成立,主要原因如下:

  1. 用户在HarmonyOS NEXT(属于uni-app x平台)使用plus.runtime.install API,但uni-app x中不再支持plus和weex的API。鸿蒙NEXT需通过uni-app x的热更新机制实现,而非传统plus API。
  2. wgt热更新要求编译版本(uniCompileVersion)与设备运行时版本(uniRuntimeVersion)必须兼容。若HBuilderX 4.87编译的wgt包与旧版客户端引擎不匹配,会默认拦截更新(需在manifest配置忽略报警)。
  3. 知识库明确说明:HBuilderX 4.41+仅支持元服务热重载(非wgt热更新),且需设备基础依赖包版本≥1.0.13.310。用户操作的是wgt热更新,与元服务热重载机制无关。

建议解决方案:

  • 鸿蒙平台应使用uni-app x的热更新规范,而非plus API。
  • 检查wgt包与设备运行时的版本兼容性,必要时在manifest.json中配置"compatible": {"ignoreVersionCheck": true}
  • 确认设备是否满足热更新条件(执行hdc shell bm get -d检查基础包版本)。
内容为 AI 生成,仅供参考

要回复问题请先登录注册