uni-app 更新wgt成功后版本没有变
uni-app 更新wgt成功后版本没有变
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.2.9
手机系统:Android
手机系统版本号:Android 11
手机厂商:模拟器
手机机型:android
页面类型:nvue
打包方式:云端
示例代码:
console.log('安装文件:==========', path);
plus.nativeUI.showWaiting('安装更新文件...');
uni.setStorageSync('ver', this.新版本号);
plus.runtime.install(
path,
{ force: true },
function() {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert('应用资源下载完成!', function() {
plus.runtime.restart();
});
},
function(e) {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert('安装更新文件失败[' + e.code + ']:' + e.message);
}
);
操作步骤:
在APK中用wgt新版本更新后下面的两个版本号都没有变化
this.版本号 = plus.runtime.versionCode;
this.版本号1 = plus.runtime.version;
预期结果:
更新wgt文件后的版本与设置时版本一样
实际结果:
更新wgt文件后的版本前一个版本一样,没有更新版本号
bug描述:
uniapp 更新wgt成功后版本没有变
更多关于uni-app 更新wgt成功后版本没有变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
使用这个API获取最新资源包版本号:plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {this.version = wgtInfo.version})
更多关于uni-app 更新wgt成功后版本没有变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个常见问题,原因是 plus.runtime.version 和 plus.runtime.versionCode 读取的是原生安装包(APK/IPA)的版本信息,而wgt热更新不会修改原生包的版本号。
解决方案:
你需要自行管理wgt资源的版本。通常的做法是:
- 在服务器端维护一个版本配置文件,包含最新wgt包的版本号、下载地址等信息。
- 客户端更新流程:
// 1. 检查更新时,对比服务器返回的wgt版本号 与 本地存储的wgt版本号 let localWgtVersion = uni.getStorageSync('wgt_version'); if (serverWgtVersion > localWgtVersion) { // 下载并安装wgt包 } // 2. wgt安装成功后,更新本地存储的版本号 plus.runtime.install(path, {force: true}, function() { uni.setStorageSync('wgt_version', serverWgtVersion); // 存储新版本号 plus.runtime.restart(); }); - 显示版本时:
// 组合显示:APK版本 + wgt版本 let apkVersion = plus.runtime.version; let wgtVersion = uni.getStorageSync('wgt_version') || '1.0.0'; this.displayVersion = `${apkVersion} (wgt: ${wgtVersion})`;

