diff --git a/index.html b/index.html index 7cfeba7..c3e3c36 100644 --- a/index.html +++ b/index.html @@ -63,9 +63,9 @@

本页演示共享授权规范:wx-auth.js(wxAuth.init/requestProfile/goMall/readAuth/isAuthorized)。 - 授权流程:点「授权登录」→ wx.miniProgram.postMessage({action:'requestProfile'}) → - 通用宿主页 pages/annex/web_view 弹原生授权面板(头像/昵称/手机号)→ POST /api/mp/public/auth/profile 落库共享 UserAuth → - 宿主页更新 web-view src(hash 带结果)→ 本页重载 → wxAuth.readAuth() 显示。 + 授权流程:点「授权登录」→ wx.miniProgram.navigateTo('/pages/annex/auth/index') → + 小程序端独立授权页(头像/昵称/手机号,非 web-view 原生组件页)→ POST /api/mp/public/auth/profile 落库共享 UserAuth → + 授权返回后宿主页更新 web-view src(hash 带结果)→ 本页重载 → wxAuth.readAuth() 显示。 「进商城」→ wx.miniProgram.switchTab('/pages/goods_cate/goods_cate')。

@@ -97,7 +97,7 @@ /* ============================================================ ① 页面版本号(YYMMDD + 两位序号)—— 用于排查 webview 是否缓存了旧页面 ============================================================ */ - var VER = '26090702'; + var VER = '26090703'; var verNoEl = el('verNo'); if (verNoEl) verNoEl.textContent = VER; @@ -217,7 +217,7 @@ if (!(window.wx && window.wx.miniProgram)) { dbgErr('requestProfile 被拒绝:window.wx.miniProgram 不存在(不在微信 web-view 或 jweixin 未加载)'); } else { - dbg('requestProfile 前置检查通过(wx.miniProgram 存在),开始发送 postMessage', 'ok'); + dbg('requestProfile 前置检查通过(wx.miniProgram 存在),开始 navigateTo 授权页', 'ok'); } wxAuth.requestProfile(); }); diff --git a/wx-auth.js b/wx-auth.js index 57892c2..868701d 100644 --- a/wx-auth.js +++ b/wx-auth.js @@ -55,11 +55,13 @@ var a = this.readAuth(); return !!(a.nickname || a.avatar || a.phone); }, - /* ④ 请求授权:postMessage → 通用宿主页(annex/web_view)弹原生授权面板 */ - requestProfile: function () { + /* ④ 请求授权:navigateTo → 小程序端独立授权页(默认 pages/annex/auth/index)。 + 改动说明:微信 web-view 的 postMessage 非实时送达,点击时端上收不到; + 改用 wx.miniProgram.navigateTo 实时跳转到授权页,避开该限制。 */ + requestProfile: function (authPage) { if (!(window.wx && window.wx.miniProgram)) { this.toast('请在微信小程序中打开'); return; } - window.wx.miniProgram.postMessage({ data: { action: 'requestProfile' } }); - this.toast('请在弹出的小程序面板授权'); + window.wx.miniProgram.navigateTo({ url: authPage || '/pages/annex/auth/index' }); + this.toast('正在打开授权页…'); }, /* ⑤ 跳小程序商城(tabBar 页用 switchTab;非 tabBar 用 navigateTo) */ goMall: function (url) {