授权回传确定性修复:requestProfile/goAuth 跳授权页时把当前 H5 地址作 backUrl 带给授权页(navigateTo query 通道,不赌 postMessage 派发时机);版本 v26091901
This commit is contained in:
@@ -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