授权回传确定性修复: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 () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||||
var VER = '26091802';
|
var VER = '26091901';
|
||||||
const $ = (s, c) => (c || document).querySelector(s);
|
const $ = (s, c) => (c || document).querySelector(s);
|
||||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||||
|
|
||||||
@@ -4577,7 +4577,13 @@
|
|||||||
window.wx.miniProgram.getEnv(function (r) {
|
window.wx.miniProgram.getEnv(function (r) {
|
||||||
responded = true;
|
responded = true;
|
||||||
if (r && r.miniprogram) {
|
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 {
|
} else {
|
||||||
toast('请在小程序中完成授权登录');
|
toast('请在小程序中完成授权登录');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,8 +69,20 @@
|
|||||||
requestProfile: function (authPage) {
|
requestProfile: function (authPage) {
|
||||||
var self = this;
|
var self = this;
|
||||||
function nav() {
|
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({
|
window.wx.miniProgram.navigateTo({
|
||||||
url: authPage || '/pages/annex/auth/index',
|
url: url,
|
||||||
/* 页面不存在 / 页面栈超限(>10层) 时 navigateTo 是静默失败 —— 必须自己兜住并提示,
|
/* 页面不存在 / 页面栈超限(>10层) 时 navigateTo 是静默失败 —— 必须自己兜住并提示,
|
||||||
否则用户只看到「正在打开授权页…」后再无反应,无从排查。 */
|
否则用户只看到「正在打开授权页…」后再无反应,无从排查。 */
|
||||||
fail: function (err) {
|
fail: function (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user