diff --git a/index.html b/index.html
index 399fa30..920befb 100644
--- a/index.html
+++ b/index.html
@@ -99,7 +99,7 @@
/* ============================================================
① 页面版本号(YYMMDD + 两位序号)—— 用于排查 webview 是否缓存了旧页面
============================================================ */
- var VER = 26090810;
+ var VER = 26090901;
var verNoEl = el('verNo');
if (verNoEl) verNoEl.textContent = VER;
@@ -174,22 +174,43 @@
dbg('navigator.userAgent 含 MicroMessenger: ' + (/MicroMessenger/i.test(navigator.userAgent) ? '✅ 是' : '❌ 否'), 'muted');
dbg('location.hash = ' + (location.hash || '(空)') + ' location.search = ' + (location.search || '(空)'), 'muted');
- // 给 navigateTo 打补丁:记录每一次跳转调用 + 捕获异常
+ // 给 navigateTo 打补丁:记录每一次跳转调用 + 捕获异常 + 转发 fail/success
+ // (navigateTo 跳不存在的页面 / 页面栈超 10 层时是静默失败,必须靠 fail 才能看到原因)
if (window.wx && window.wx.miniProgram && window.wx.miniProgram.navigateTo) {
var _nav = window.wx.miniProgram.navigateTo.bind(window.wx.miniProgram);
window.wx.miniProgram.navigateTo = function (o) {
- dbg('navigateTo 调用 → ' + (o && o.url), 'ok');
- try { _nav(o); dbg('navigateTo 已执行', 'ok'); }
+ var opt = o || {};
+ dbg('navigateTo 调用 → ' + opt.url, 'ok');
+ var _fail = opt.fail, _succ = opt.success;
+ opt.fail = function (err) {
+ dbgErr('navigateTo fail: ' + ((err && err.errMsg) || '未知原因'));
+ if (_fail) { try { _fail(err); } catch (e) {} }
+ };
+ opt.success = function (res) {
+ dbg('navigateTo success', 'ok');
+ if (_succ) { try { _succ(res); } catch (e) {} }
+ };
+ try { _nav(opt); dbg('navigateTo 已调用(结果见 success/fail)', 'ok'); }
catch (ex) { dbgErr('navigateTo 抛异常: ' + (ex && ex.message ? ex.message : ex)); }
};
}
- // 给 switchTab 打补丁:记录每一次跳转调用 + 捕获异常
+ // 给 switchTab 打补丁:记录每一次跳转调用 + 捕获异常 + 转发 fail/success
if (window.wx && window.wx.miniProgram && window.wx.miniProgram.switchTab) {
var _st = window.wx.miniProgram.switchTab.bind(window.wx.miniProgram);
window.wx.miniProgram.switchTab = function (o) {
- dbg('switchTab 调用 → ' + (o && o.url), 'ok');
- try { _st(o); dbg('switchTab 已执行', 'ok'); }
+ var opt = o || {};
+ dbg('switchTab 调用 → ' + opt.url, 'ok');
+ var _fail = opt.fail, _succ = opt.success;
+ opt.fail = function (err) {
+ dbgErr('switchTab fail: ' + ((err && err.errMsg) || '未知原因'));
+ if (_fail) { try { _fail(err); } catch (e) {} }
+ };
+ opt.success = function (res) {
+ dbg('switchTab success', 'ok');
+ if (_succ) { try { _succ(res); } catch (e) {} }
+ };
+ try { _st(opt); dbg('switchTab 已调用(结果见 success/fail)', 'ok'); }
catch (ex) { dbgErr('switchTab 抛异常: ' + (ex && ex.message ? ex.message : ex)); }
};
}
@@ -228,6 +249,7 @@
var envTxt = a.inWebview ? '小程序 web-view' : (a.MODE === 'wechat-browser' ? '微信浏览器' : '纯浏览器');
dbg('init 回调: envTxt=' + envTxt + ' MODE=' + a.MODE + ' inWebview=' + a.inWebview, 'ok');
el('envTxt').textContent = envTxt;
+ show(a.inWebview ? 'ok' : 'no', envTxt); // 修:之前 show() 从未被调用,标签永远停在初始「纯浏览器」
el('envHint').style.display = a.inWebview ? 'none' : 'block';
render(a);
});