From dcc84dd7b7d48aee3e6c0e4e674bf8674dcb916a Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Tue, 22 Sep 2026 11:58:12 +0800 Subject: [PATCH] =?UTF-8?q?docs(AGENTS):=20=E8=A1=A5=20=C2=A74.3=20?= =?UTF-8?q?=E2=80=94=E2=80=94=20=E5=9B=9E=E5=88=B0=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E8=A6=81=E6=B8=85=20last=5Fapp=EF=BC=88=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=A3=B3=20+=20mama-box=20=E4=B8=A4=E4=BE=A7=E4=BA=92=E8=A1=A5?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 表格列出三条返回路径分别由谁清、判定依据是什么 - 明确禁止「mama-box 每次加载都清」(会把恢复落点加载误清,毁掉记录) - 首页壳只在重载目标命中 /mama-box 时清 --- AGENTS.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 4fe8b39..e23e7ae 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -70,6 +70,22 @@ CRMEB 商城小程序(uniapp,manifest `name=DoubaShop`),同时是**整 否则 mama-box 的兜底恢复会绕开小程序判定又把用户送走。 - 反向:小程序**尝试恢复但取数失败/超时**时**不带** `norestore`,让 mama-box 兜底重试一次。 +### 4.3 回到首页要清 last_app(两侧互补,2026-09-22) + +现象:进入 H5 应用 → **返回**回到 mama-box 首页 → 再冷启动进小程序,又被送回刚退出的应用。 +记录的是「最后进入的 H5 应用」,人已经回到首页了 → 必须清掉。清除动作分两侧,互补覆盖: + +| 路径 | 谁清 | 判定 | +| --- | --- | --- | +| H5 应用自己的返回(`history.back()` / 后退重载) | **mama-box** `clearLastAppOnBackHome()` | `pageshow.persisted` / `navigation.type === 'back_forward'` | +| H5 应用以 `location.href` 回 mama-box | **mama-box**(同上) | `document.referrer` 是 `https://mp.yizhezhe.com//` | +| 容器页**返回箭头**回首页(host 重载,不带 referrer) | **首页壳** `_clearLastApp()` | `onShow` 决定重载回 mama-box 时(`reloadBase` 命中 `/mama-box`) | + +- 接口:`DELETE /api/mp/public/last-app?openid=`(幂等、fail-soft)。 +- ⚠️ **绝不能改成「mama-box 每次加载都清」**:恢复流程会把 mama-box 当**返回落点**加载, + 误清会毁掉刚用上的记录(实测:普通加载与 `#norestore=1` 落点加载都不清)。 +- ⚠️ 首页壳只在**重载目标是 mama-box** 时清;重载目标是某个应用(`shareHref` 指向它)时不能清。 + ## 5. 本仓库状态提醒 - ⚠️ `mixins/shareCard.js` **未被 git 跟踪**(untracked),但两个宿主页都 import 它 —— 提交时别漏,否则一旦丢工作区这份文件就没了。