diff --git a/frontend/src/app/services/bridge.ts b/frontend/src/app/services/bridge.ts index 3ee3be6..abddfc0 100644 --- a/frontend/src/app/services/bridge.ts +++ b/frontend/src/app/services/bridge.ts @@ -92,6 +92,32 @@ const bridge = { title, }) }, + + /** + * 触发小程序授权登录(手机号/头像/昵称) + * H5 需要用户身份信息时调用,跳转小程序登录页 + * 登录完成后返回 web-view,小程序会刷新 H5 并带上新身份参数 + */ + requireAuth(opts?: { redirectUrl?: string }) { + const mp = getMiniProgram() + if (!mp) { + console.warn('[bridge.requireAuth] 不在小程序 web-view 环境中') + return + } + const loginPage = '/pages/users/wechat_login/index' + const redirectUrl = opts?.redirectUrl || window.location.href + console.log('[bridge.requireAuth] 跳转小程序登录页:', loginPage) + mp.navigateTo({ + url: loginPage, + success: () => { + // 记录返回地址,登录成功后回跳 + try { + window.sessionStorage.setItem('bridge_auth_back', redirectUrl) + } catch (e) { /* ignore */ } + }, + fail: (err: any) => console.warn('[bridge.requireAuth] 跳转失败:', err), + }) + }, } export default bridge