fix(身份): bustReload 重载时拼回 hash —— 退出登录/首次完善资料后不再丢身份误报未获取身份 (v26092009)

This commit is contained in:
2026-09-21 14:04:54 +08:00
parent 932e42e050
commit 3b70f63dce
2 changed files with 12 additions and 5 deletions

View File

@@ -7,7 +7,7 @@
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<title>兜爸心选 · 孕育陪伴</title> <title>兜爸心选 · 孕育陪伴</title>
<!-- V:26092008 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 --> <!-- V:26092009 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
<link rel="stylesheet" href="mama-box.css"> <link rel="stylesheet" href="mama-box.css">
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<!-- 共享助手:授权/跳商城/位置上报(分享卡片同步,见 docs/h5-auth-standard.md 第四节) --> <!-- 共享助手:授权/跳商城/位置上报(分享卡片同步,见 docs/h5-auth-standard.md 第四节) -->

View File

@@ -3,7 +3,7 @@
(function () { (function () {
'use strict'; 'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */ /* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26092008'; var VER = '26092009';
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));
@@ -738,11 +738,18 @@
? '还没填预产期,孕周先锁着 —— 选好上面的预产期就会自动算出来。' ? '还没填预产期,孕周先锁着 —— 选好上面的预产期就会自动算出来。'
: '已按预产期自动算出,觉得不准可以自己微调。'; : '已按预产期自动算出,觉得不准可以自己微调。';
} }
/* 缓存戳重载:URL 已有 query 时必须用 & 拼接 —— 直接拼 '?t=' 会把 /* 缓存戳重载:只换查询串(?t=…),两处都不能丢:
第二个 ? 吃进已有参数值里(?openid=abc001?t=123 → openid 变脏)。 */ ① URL 已有 query 时必须用 & 拼接 —— 直接拼 '?t=' 会把第二个 ? 吃进已有参数值里
(?openid=abc001?t=123 → openid 变脏);
② **hash 必须原样拼回去** —— openid/unionid 只活在 hash 里(宿主注入的形态是
…/mama-box/#openid=…&unionid=…),丢掉 hash 再重载 = 把身份一起丢了 →
applyRemoteProfile 走访客分支:误报「未获取到微信身份」、孕周清空、
昵称/头像也拉不到(后端其实都保留着)。
调用它的两个场景都要求身份还在:① 退出授权登录(只翻授权状态,资料保留)
② 新用户首次完善资料(重载后要按服务端孕周显示)。 */
function bustReload() { function bustReload() {
const b = location.href.split('#')[0]; const b = location.href.split('#')[0];
location.replace(b + (b.indexOf('?') >= 0 ? '&' : '?') + 't=' + Date.now()); location.replace(b + (b.indexOf('?') >= 0 ? '&' : '?') + 't=' + Date.now() + location.hash);
} }
/* state.due / week / day 在 fetch 返回前是内置默认 —— 不能在脚本加载时 /* state.due / week / day 在 fetch 返回前是内置默认 —— 不能在脚本加载时