wx-auth/wx-h5-demo: 授权与商城跳转加 fail 兜底提示; 修环境标签恒显「纯浏览器」; 调试面板转发 navigateTo/switchTab fail (demo v26090901)
This commit is contained in:
36
index.html
36
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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user