fix(工具列表): 去掉「排除授权示例」的前端过滤,应用可见性交由后台上下架决定 (v26092007)

原逻辑:loadPublishedApps() 里 `.filter(a => a.url && !/wx-h5-demo/i.test(a.url))`
单独屏蔽「H5应用授权示例」,于是已上架 14 个只显示 13 个。

去掉的两个理由:
1)同一份数据在别的端不一致 —— 商城小程序「我的应用」(myApps) 直接铺
   /api/mp/apps 全量,没有任何过滤,所以那边能看到它;
2)mama-box 端要用这个应用排查「openid 为空」的场景,前端把它藏掉就没法从宫格进去。

现在只保留「必须有 url」这一条(没配链接的点了没反应),谁能出现完全由后台
「应用管理」的上架/下架(isPublished)人工决定;注释里写清了历史与「别在前端
重新引入名单」。顺带说明:原来那条过滤是按 URL 正则匹配的,本身就是脆的
(demo 换域名就自动失效)。

验证:本地代理实测宫格 14 个、含「H5应用授权示例」,标题「共 14 个 ›」;
点它 → https://mp.yizhezhe.com/wx-h5-demo/?openid=…(有身份);
无 openid 时 → https://mp.yizhezhe.com/wx-h5-demo/(正好是排查要的干净入口);errors 空。
This commit is contained in:
2026-09-20 02:57:27 +08:00
parent 31d153b513
commit 340fc911b1
2 changed files with 17 additions and 4 deletions

View File

@@ -3,7 +3,7 @@
(function () {
'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26092006';
var VER = '26092007';
const $ = (s, c) => (c || document).querySelector(s);
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
@@ -164,7 +164,16 @@
/* ================= 「记一下」弹层 · 全部孕期工具 = 已上架应用列表 =================
数据:box_app /api/mp/apps(应用管理统一维护图标/名称/链接)。
范围:isPublished=1 且有 url;排除授权示例(wx-h5-demo,开发者用的)。
范围:isPublished=1 且有 url。**前端不做任何额外过滤** ——
谁能出现在这里,完全由后台「应用管理」的上架/下架(isPublished)人工决定。
⚠️ 2026-09-20 按需求去掉了原来那条 `!/wx-h5-demo/i` 过滤(它单独屏蔽「H5应用授权示例」)。
去掉的两个理由,别再加回来:
1)同一个应用在别的端(商城小程序「我的应用」直接铺全量)是可见的,
只在 mama-box 屏蔽会造成「同一份数据、两个端不一样」;
2)mama-box 端要**用这个应用排查「openid 为空」**的场景(授权示例页本身就是干这个的),
前端把它藏掉就没法从宫格进去。
真要让某个应用不出现,去后台下架它,别在前端写名单 —— 名单会漂。
⚠️ 那个过滤是按 URL 正则匹配的,本身就是脆的:demo 换个域名就自动失效。
交互:全量铺进弹层宫格(沿用 .apps-grid/.app 样式),点击带身份跳转对应 H5。 */
function appTileColor(name) {
const PALETTE = ['#F2917A', '#E8A2B8', '#8FB4E3', '#7FC8A9', '#E3B771', '#A99BD1', '#73BFB2', '#DE8F6E'];
@@ -213,8 +222,12 @@
.then(r => (r.ok ? r.json() : null))
.then(d => {
const items = (d && d.result && d.result.items) || [];
/* ⚠️ 只要求有 url(没配链接的点了没反应);**不再按应用名/URL 过滤** ——
「H5应用授权示例(wx-h5-demo)」曾经在这里被单独屏蔽,2026-09-20 按需求去掉:
mama-box 要用它排查 openid 为空的场景,且它的可见性该由后台上下架决定。
详见上面那段注释;别在前端重新引入名单。 */
const apps = items
.filter(a => a.url && !/wx-h5-demo/i.test(a.url)) /* 排除授权示例 */
.filter(a => a.url)
.sort((x, y) => (y.seq || 0) - (x.seq || 0) || (y.no || 0) - (x.no || 0));
apps.forEach(a => { APP_BY_ID[a.identifier] = a; }); /* 供首页工具卡按 identifier 取 URL */
renderAppGrid(apps);