diff --git a/AGENTS.md b/AGENTS.md index 12e138c..65d89ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,6 +30,7 @@ CRMEB 商城小程序(uniapp,manifest `name=DoubaShop`),同时是**整 | --- | --- | | `pages/index/index.vue` | 首页壳:身份 fail-closed、加载 mama-box、**冷启动恢复 last_app**、分享卡片、tabBar 显隐 | | `pages/annex/web_view/index.vue` | 容器页:太阳码 scene 解析、身份注入(query)、`_reportLastApp` 上报 | +| `pages/annex/link_view/index.vue` | **链接型壳页**(2026-11-04):链接系统 / 福利系统的小程序码落地。scene=`l=` / `f=` 或转发 `?t=&k=` → 按硬编码的 `TARGETS` 拼 `wenda.douba.top/s/`、`fuli.douba.top/a/` 用 web-view 打开;**不注入身份、不引 mixin**;解析不出来走兜底屏(见 §3.9) | | `mixins/webviewHost.js` | 宿主公共能力:postMessage 分发(location/share/copyLink/setTitle/requestProfile)、原生授权面板、授权回传、静默登录复用 | | `mixins/shareCard.js` | 分享图:按当前 H5 URL 反查 box_app App 表;朋友圈本地图转换 | | `App.vue` | 冷启动静默登录、`globalData`(`spid` / `appShowAt`)、`onShow`(前台化时间戳) | @@ -46,6 +47,11 @@ CRMEB 商城小程序(uniapp,manifest `name=DoubaShop`),同时是**整 6. **tabBar 是全局状态**:首页壳必须 `uni.hideTabBar()`(web-view 盖不住原生条,H5 自带底栏会双条);**严禁在商城页主动 `showTabBar` 配对** —— 会与 DIY 底栏同显成双 tabBar。 7. **恢复/落地统一 `navigateTo` 容器页**,并保留首页壳作为返回落点;不要直接把首页壳的 web-view src 指向第三方应用(首页壳的 `buildWebUrl` 是 **hash** 注入,会破坏自带 hash 路由的应用)。 8. **只用 `options.url` 当显式落地判据**:`options.scene` **每次冷启动都有值**(1001 最近使用 / 1007 分享 / 1011 扫码…),拿它判落地会导致恢复永远不执行。 +9. **链接型壳页 `pages/annex/link_view` 的三条同步契约**(2026-11-04,方案见 box_app `docs/lianjie-wxacode-plan.md`): + ① 页内 `TARGETS`(短键 / 地址前缀 / 标识正则)必须与 box_app `backend/app/services/link_wxacode_serv.py` 的同名表**逐字一致**,改表 = 两端一起改 + 小程序发版; + ② 页面路径必须等于 box_app 生产 `.env` 的 `LINK_WXACODE_PAGE`(默认 `pages/annex/link_view/index`),否则已生成的码全部扫不进页面; + ③ 该页**故意不注入 openid/unionid**(两家 H5 走自己的公众号网页授权),所以不要往里加 `webviewHost` / `shareCard`,也不要往 URL 上带身份参数。 + `wenda.douba.top`、`fuli.douba.top`、`dbh5.ywsz.com.cn` 三个域名必须在微信后台「业务域名」里,**体验版真机同样校验**(漏一个 = 部分活动白屏)。 ## 4. 踩坑:宿主生命周期(2026-09-22,都付过线上代价) diff --git a/pages.json b/pages.json index 038625c..8a505eb 100644 --- a/pages.json +++ b/pages.json @@ -1088,6 +1088,11 @@ // #endif } } + }, { + "path": "link_view/index", + "style": { + "navigationBarTitleText": "兜爸心选" + } }, { "path": "auth/index", "style": { diff --git a/pages/annex/link_view/index.vue b/pages/annex/link_view/index.vue new file mode 100644 index 0000000..fe704f1 --- /dev/null +++ b/pages/annex/link_view/index.vue @@ -0,0 +1,137 @@ + + + + + +