From 9064973a3f5d856f7740ff7ce5f93fab84c3eed7 Mon Sep 17 00:00:00 2001 From: duxingchen Date: Tue, 11 Aug 2026 16:56:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20onShow=20=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E6=96=B0=E6=A3=80=E6=9F=A5=20=E2=80=94=20?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=97=A0=E9=9C=80=E6=9D=80=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E5=8D=B3=E5=8F=AF=E6=84=9F=E7=9F=A5=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: checkUpdate 仅在 onLaunch 执行,App 常驻内存时永不复用。 用户部署更新后,不杀后台就永远感知不到新版本。 修复: 1. onShow 中追加 checkUpdate(),每次回到前台自动检测 2. checkUpdate 顶部加 5分钟节流,避免频繁切后台时重复弹窗 --- track-uniapp/src/App.vue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/track-uniapp/src/App.vue b/track-uniapp/src/App.vue index 2336f41..6377481 100644 --- a/track-uniapp/src/App.vue +++ b/track-uniapp/src/App.vue @@ -22,6 +22,10 @@ export default { onShow() { console.log("App 显示"); this.updateTabBarBadge(); + // 🚀 每次回到前台也检查更新,用户无需杀后台就能感知新版本 + // #ifdef APP-PLUS + this.checkUpdate(); + // #endif }, onHide() { console.log("App 隐藏"); @@ -31,6 +35,14 @@ export default { // OTA 热更新雷达 — 版本检测 + WGT 下载 + 静默安装 // ========================================================== checkUpdate() { + // 🚀 节流:5分钟内不重复检查,避免 onShow 频繁触发弹窗骚扰 + const now = Date.now(); + if (this._lastUpdateCheck && now - this._lastUpdateCheck < 5 * 60 * 1000) { + console.log("[OTA] 距上次检查不足5分钟,跳过"); + return; + } + this._lastUpdateCheck = now; + // 🔧 appWgtVersion 跟随 WGT 更新,解析算法: major*100 + lastNum // "T1.0.1"→101, "T1.0.10"→110, "T1.0.99"→199 const sysInfo = uni.getSystemInfoSync();