From 0c1f11ac6b685fadb55cdc9acb001cf1b747f06b Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Mon, 7 Sep 2026 17:16:15 +0800 Subject: [PATCH] =?UTF-8?q?mama-box:=20reset=20H5=20SPA=20to=20home=20on?= =?UTF-8?q?=20webview=20re-show=20(return=20from=20mall/=E5=90=8E=E5=8F=B0?= =?UTF-8?q?)=20=E2=80=94=20fixes=20staying=20on=20=E6=88=91=E7=9A=84=20aft?= =?UTF-8?q?er=20=E5=95=86=E5=9F=8E=E2=86=92=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/app.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/js/app.js b/js/app.js index 91c8bba..48ce534 100644 --- a/js/app.js +++ b/js/app.js @@ -4131,6 +4131,21 @@ b.addEventListener('click', goMall); }); + /* 从商城/后台切回小程序首页时,webview 会再次可见 —— 把 H5 重置回「首页」屏。 + ⚠️ 若不处理:切到商城再点「首页」tab,仍是同一个 webview 实例, + SPA 还停留在切走前的屏(如「我的」),与"回到首页"的预期不符。 + 只在"当前不是首页"时才切,避免打断用户在首页上的浏览/滚动。 */ + function resetScreenOnShow() { + var cur = document.querySelector('.screen.is-active'); + if (cur && cur.dataset.screen && cur.dataset.screen !== 'home') go('home'); + } + document.addEventListener('visibilitychange', function () { + if (document.visibilityState === 'visible') resetScreenOnShow(); + }); + window.addEventListener('pageshow', function () { + if (document.visibilityState !== 'hidden') resetScreenOnShow(); + }); + if (document.readyState === 'complete') init(); else window.addEventListener('load', init); })();