授权示例: requestProfile 加环境判定与同款提示, 调试面板加 navigateTo 埋点 (v26090801)
This commit is contained in:
12
index.html
12
index.html
@@ -97,7 +97,7 @@
|
|||||||
/* ============================================================
|
/* ============================================================
|
||||||
① 页面版本号(YYMMDD + 两位序号)—— 用于排查 webview 是否缓存了旧页面
|
① 页面版本号(YYMMDD + 两位序号)—— 用于排查 webview 是否缓存了旧页面
|
||||||
============================================================ */
|
============================================================ */
|
||||||
var VER = '26090703';
|
var VER = '26090801';
|
||||||
var verNoEl = el('verNo');
|
var verNoEl = el('verNo');
|
||||||
if (verNoEl) verNoEl.textContent = VER;
|
if (verNoEl) verNoEl.textContent = VER;
|
||||||
|
|
||||||
@@ -172,6 +172,16 @@
|
|||||||
dbg('navigator.userAgent 含 MicroMessenger: ' + (/MicroMessenger/i.test(navigator.userAgent) ? '✅ 是' : '❌ 否'), 'muted');
|
dbg('navigator.userAgent 含 MicroMessenger: ' + (/MicroMessenger/i.test(navigator.userAgent) ? '✅ 是' : '❌ 否'), 'muted');
|
||||||
dbg('location.hash = ' + (location.hash || '(空)') + ' location.search = ' + (location.search || '(空)'), 'muted');
|
dbg('location.hash = ' + (location.hash || '(空)') + ' location.search = ' + (location.search || '(空)'), 'muted');
|
||||||
|
|
||||||
|
// 给 navigateTo 打补丁:记录每一次跳转调用 + 捕获异常
|
||||||
|
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'); }
|
||||||
|
catch (ex) { dbgErr('navigateTo 抛异常: ' + (ex && ex.message ? ex.message : ex)); }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// 给 postMessage 打补丁:记录每一次调用 + 捕获异常
|
// 给 postMessage 打补丁:记录每一次调用 + 捕获异常
|
||||||
var origPost = (window.wx && window.wx.miniProgram && window.wx.miniProgram.postMessage) ? window.wx.miniProgram.postMessage.bind(window.wx.miniProgram) : null;
|
var origPost = (window.wx && window.wx.miniProgram && window.wx.miniProgram.postMessage) ? window.wx.miniProgram.postMessage.bind(window.wx.miniProgram) : null;
|
||||||
if (window.wx && window.wx.miniProgram) {
|
if (window.wx && window.wx.miniProgram) {
|
||||||
|
|||||||
25
wx-auth.js
25
wx-auth.js
@@ -58,10 +58,29 @@
|
|||||||
/* ④ 请求授权:navigateTo → 小程序端独立授权页(默认 pages/annex/auth/index)。
|
/* ④ 请求授权:navigateTo → 小程序端独立授权页(默认 pages/annex/auth/index)。
|
||||||
改动说明:微信 web-view 的 postMessage 非实时送达,点击时端上收不到;
|
改动说明:微信 web-view 的 postMessage 非实时送达,点击时端上收不到;
|
||||||
改用 wx.miniProgram.navigateTo 实时跳转到授权页,避开该限制。 */
|
改用 wx.miniProgram.navigateTo 实时跳转到授权页,避开该限制。 */
|
||||||
|
/* ④ 请求授权:环境判定(与 goMall/mama-box 同一套):
|
||||||
|
wx.miniProgram 存在 → getEnv 确认(纯浏览器加载了 jweixin 时 getEnv
|
||||||
|
不回调,800ms 超时兜底)→ 是小程序才 navigateTo 授权页;
|
||||||
|
否则 toast「请在小程序中完成授权登录」。 */
|
||||||
requestProfile: function (authPage) {
|
requestProfile: function (authPage) {
|
||||||
if (!(window.wx && window.wx.miniProgram)) { this.toast('请在微信小程序中打开'); return; }
|
var self = this;
|
||||||
window.wx.miniProgram.navigateTo({ url: authPage || '/pages/annex/auth/index' });
|
function nav() {
|
||||||
this.toast('正在打开授权页…');
|
window.wx.miniProgram.navigateTo({ url: authPage || '/pages/annex/auth/index' });
|
||||||
|
self.toast('正在打开授权页…');
|
||||||
|
}
|
||||||
|
if (window.wx && window.wx.miniProgram) {
|
||||||
|
var responded = false;
|
||||||
|
window.wx.miniProgram.getEnv(function (r) {
|
||||||
|
responded = true;
|
||||||
|
if (r && r.miniprogram) nav();
|
||||||
|
else self.toast('请在小程序中完成授权登录');
|
||||||
|
});
|
||||||
|
setTimeout(function () {
|
||||||
|
if (!responded) self.toast('请在小程序中完成授权登录');
|
||||||
|
}, 800);
|
||||||
|
} else {
|
||||||
|
this.toast('请在小程序中完成授权登录');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/* ⑤ 跳小程序商城(tabBar 页用 switchTab;非 tabBar 用 navigateTo) */
|
/* ⑤ 跳小程序商城(tabBar 页用 switchTab;非 tabBar 用 navigateTo) */
|
||||||
goMall: function (url) {
|
goMall: function (url) {
|
||||||
|
|||||||
Reference in New Issue
Block a user