授权回传确定性修复:requestProfile/goAuth 跳授权页时把当前 H5 地址作 backUrl 带给授权页(navigateTo query 通道,不赌 postMessage 派发时机);版本 v26091901
This commit is contained in:
10
js/app.js
10
js/app.js
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26091802';
|
||||
var VER = '26091901';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -4577,7 +4577,13 @@
|
||||
window.wx.miniProgram.getEnv(function (r) {
|
||||
responded = true;
|
||||
if (r && r.miniprogram) {
|
||||
window.wx.miniProgram.navigateTo({ url: '/pages/annex/auth/index' });
|
||||
/* 带上 backUrl(当前地址)→ 授权页写进 __AUTH_RESULT__ → 宿主优先按它
|
||||
回传:从哪个 H5 触发的授权就回到哪个 H5(不赌 postMessage 派发时机)。 */
|
||||
var u = '/pages/annex/auth/index';
|
||||
try {
|
||||
u += '?backUrl=' + encodeURIComponent(location.href);
|
||||
} catch (e) {}
|
||||
window.wx.miniProgram.navigateTo({ url: u });
|
||||
} else {
|
||||
toast('请在小程序中完成授权登录');
|
||||
}
|
||||
|
||||
@@ -69,8 +69,20 @@
|
||||
requestProfile: function (authPage) {
|
||||
var self = this;
|
||||
function nav() {
|
||||
/* 把「发起授权的当前 H5 地址」经 navigateTo query 带给授权页(backUrl)——
|
||||
与 openid 同一条可靠通道(navigateTo onLoad 必达),不依赖 postMessage
|
||||
(微信只在后退/销毁/分享时批量派发,时序不可靠:宫格 location.href 换应用后,
|
||||
宿主记的 shareHref 可能还是上一个应用的地址,授权结果被送回错的地方)。
|
||||
授权页把 backUrl 写进 __AUTH_RESULT__,宿主 onShow 优先用它做回传基址:
|
||||
从哪个 H5 触发的授权,授权后就回到哪个 H5。 */
|
||||
var url = authPage || '/pages/annex/auth/index';
|
||||
var backUrl = '';
|
||||
try { backUrl = location.href; } catch (e) {}
|
||||
if (backUrl) {
|
||||
url += (url.indexOf('?') !== -1 ? '&' : '?') + 'backUrl=' + encodeURIComponent(backUrl);
|
||||
}
|
||||
window.wx.miniProgram.navigateTo({
|
||||
url: authPage || '/pages/annex/auth/index',
|
||||
url: url,
|
||||
/* 页面不存在 / 页面栈超限(>10层) 时 navigateTo 是静默失败 —— 必须自己兜住并提示,
|
||||
否则用户只看到「正在打开授权页…」后再无反应,无从排查。 */
|
||||
fail: function (err) {
|
||||
|
||||
Reference in New Issue
Block a user