版本忽略更新,报工页面优化

This commit is contained in:
砂糖
2025-07-11 10:07:03 +08:00
parent faab5b2bd1
commit 561601910f
6 changed files with 849 additions and 130 deletions

47
App.vue
View File

@@ -471,7 +471,7 @@ export default {
},
};
function checkUpdate() {
function checkUpdate(forceCheck = false) {
const localVersion = plus.runtime.version;
const localWgtVersion = uni.getStorageSync('wgtVersion') || localVersion;
uni.request({
@@ -483,11 +483,19 @@ function checkUpdate() {
const currentVersion = compareVersion(localWgtVersion, localVersion) > 0 ? localWgtVersion : localVersion;
console.log('本地基座版本:', localVersion, '本地wgt版本:', localWgtVersion, '当前对比版本:', currentVersion, '远程版本:', remoteVersion);
if (compareVersion(remoteVersion, currentVersion) > 0) {
// 检查是否已忽略当前版本(除非强制检查)
const ignoredVersion = uni.getStorageSync('ignoredVersion');
if (!forceCheck && ignoredVersion === remoteVersion) {
console.log('用户已选择忽略此版本:', remoteVersion);
return;
}
uni.showModal({
title: '发现新版本',
content: `检测到新版本(${remoteVersion}),是否立即下载并更新?`,
confirmText: '立即更新',
cancelText: '暂不更新',
showCancel: true,
success: (modalRes) => {
if (modalRes.confirm) {
uni.showLoading({title: '正在下载更新包...'});
@@ -520,6 +528,20 @@ function checkUpdate() {
uni.showToast({title: '下载失败'});
}
});
} else {
// 用户选择暂不更新,询问是否忽略此版本
uni.showModal({
title: '忽略更新',
content: `是否忽略版本 ${remoteVersion}?忽略后下次启动时将不再提示此版本更新。`,
confirmText: '忽略此版本',
cancelText: '下次提醒',
success: (ignoreRes) => {
if (ignoreRes.confirm) {
uni.setStorageSync('ignoredVersion', remoteVersion);
uni.showToast({title: '已忽略此版本更新'});
}
}
});
}
}
});
@@ -550,6 +572,29 @@ function compareVersion(v1, v2) {
}
return 0;
}
// 更新管理工具函数
function clearIgnoredVersion() {
uni.removeStorageSync('ignoredVersion');
console.log('已清除忽略的版本设置');
}
function getIgnoredVersion() {
return uni.getStorageSync('ignoredVersion');
}
function setIgnoredVersion(version) {
uni.setStorageSync('ignoredVersion', version);
console.log('已设置忽略版本:', version);
}
// 导出更新管理函数供其他页面使用
uni.$updateManager = {
checkUpdate: (forceCheck = false) => checkUpdate(forceCheck),
clearIgnoredVersion,
getIgnoredVersion,
setIgnoredVersion
};
</script>
<style lang="scss">