|
|
@@ -125,53 +125,74 @@
|
|
|
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
|
|
|
vm.version = inf.version
|
|
|
});
|
|
|
- vm.getUpdateInfo(); //获取最新版本信息
|
|
|
// #endif
|
|
|
- vm.getUpdateInfo(); //获取最新版本信息
|
|
|
+ // 返回 Promise,结果 = { hasUpdate, latestVersion }
|
|
|
+ return vm.getUpdateInfo();
|
|
|
},
|
|
|
// 获取线上版本信息
|
|
|
async getUpdateInfo() {
|
|
|
- //向后台发起请求,获取最新版本号
|
|
|
- let apkquote = await this.$http.get('/version/getMaxVersion', {
|
|
|
- appid: "__UNI__05D695B",
|
|
|
- packageType: "apk",
|
|
|
- });
|
|
|
- if (apkquote.code == 200 && apkquote.data) {
|
|
|
- vm.apkInfo = apkquote.data;
|
|
|
- vm.apkLatestVersion = apkquote.data.version;
|
|
|
- }
|
|
|
- let wgtquote = await this.$http.get('/version/getMaxVersion', {
|
|
|
- packageType: "wgt",
|
|
|
- appid: "__UNI__05D695B",
|
|
|
- });
|
|
|
- if (wgtquote.code == 200 && wgtquote.data) {
|
|
|
- vm.wgtInfo = wgtquote.data;
|
|
|
- vm.wgtLatestVersion = wgtquote.data.version;
|
|
|
+ try {
|
|
|
+ //向后台发起请求,获取最新版本号
|
|
|
+ let apkquote = await this.$http.get('/version/getMaxVersion', {
|
|
|
+ appid: "__UNI__05D695B",
|
|
|
+ packageType: "apk",
|
|
|
+ });
|
|
|
+ if (apkquote.code == 200 && apkquote.data) {
|
|
|
+ vm.apkInfo = apkquote.data;
|
|
|
+ vm.apkLatestVersion = apkquote.data.version;
|
|
|
+ }
|
|
|
+ let wgtquote = await this.$http.get('/version/getMaxVersion', {
|
|
|
+ packageType: "wgt",
|
|
|
+ appid: "__UNI__05D695B",
|
|
|
+ });
|
|
|
+ if (wgtquote.code == 200 && wgtquote.data) {
|
|
|
+ vm.wgtInfo = wgtquote.data;
|
|
|
+ vm.wgtLatestVersion = wgtquote.data.version;
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ // 接口异常不能静默断链:记录错误并继续按“无更新”往下走
|
|
|
+ console.error('[app-update] 版本接口请求异常:', e);
|
|
|
}
|
|
|
- vm.checkUpdate(); //检查是否更新
|
|
|
-
|
|
|
+ return vm.checkUpdate(); //检查是否更新并返回结果
|
|
|
},
|
|
|
- // 检查是否更新
|
|
|
+ // 检查是否更新,结果统一为 { hasUpdate, latestVersion }
|
|
|
checkUpdate() {
|
|
|
- if (vm.version) {
|
|
|
- let apkneed = vm.compareVersion(vm.version, vm.apkLatestVersion); // 检查包版本
|
|
|
+ if (!vm.version) {
|
|
|
+ // 版本号尚未获取到,按无更新处理
|
|
|
+ this.$emit('status', {
|
|
|
+ hasUpdate: false,
|
|
|
+ latestVersion: ''
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ hasUpdate: false,
|
|
|
+ latestVersion: ''
|
|
|
+ };
|
|
|
+ }
|
|
|
+ let has = false; // 是否有可更新的新版本
|
|
|
+ let apkneed = vm.compareVersion(vm.version, vm.apkLatestVersion); // 检查包版本
|
|
|
+ if (apkneed && vm.apkInfo.appType != 0) {
|
|
|
+ vm.update_info = vm.apkInfo;
|
|
|
+ has = true;
|
|
|
+ } else {
|
|
|
let wgtneed = vm.compareVersion(vm.version, vm.wgtLatestVersion); // 检查资源版本
|
|
|
- if (apkneed) {
|
|
|
- vm.update_info = vm.apkInfo;
|
|
|
- if (vm.update_info.appType != 0) {
|
|
|
- vm.popup_show = true; //线上版本号大于当前安装的版本号 显示升级框
|
|
|
- this.$emit('status', vm.popup_show)
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (wgtneed) {
|
|
|
- vm.update_info = vm.wgtInfo;
|
|
|
- if (vm.update_info.appType != 0) {
|
|
|
- vm.popup_show = true; //线上版本号大于当前安装的版本号 显示升级框
|
|
|
- this.$emit('status', vm.popup_show)
|
|
|
- }
|
|
|
- }
|
|
|
+ if (wgtneed && vm.wgtInfo.appType != 0) {
|
|
|
+ vm.update_info = vm.wgtInfo;
|
|
|
+ has = true;
|
|
|
}
|
|
|
}
|
|
|
+ let latestVersion = '';
|
|
|
+ if (has) {
|
|
|
+ vm.popup_show = true; //线上版本号大于当前安装的版本号 显示升级框
|
|
|
+ // 把可更新的最新版本号一起带回去
|
|
|
+ latestVersion = (vm.update_info && vm.update_info.version) || '';
|
|
|
+ }
|
|
|
+ const result = {
|
|
|
+ hasUpdate: has,
|
|
|
+ latestVersion: latestVersion
|
|
|
+ };
|
|
|
+ // 事件与返回值双通道:事件供页面级实例使用,返回值供组件内直接拿结果
|
|
|
+ this.$emit('status', result)
|
|
|
+ return result;
|
|
|
},
|
|
|
|
|
|
// 取消更新
|