Files
xuetang/TongjiUniApp/docs/TANG-DETECTIVE-INTEGRATION.md
2026-09-09 14:47:29 +08:00

8.1 KiB
Raw Permalink Blame History

唐侦探迁入 TongjiUniApp

核对日期:2026-09-08。本说明针对目录纠正后的 xuetang/TongjiUniApp,不是此前的 xuetang/TUICallKit-Vue3。用户登录后台后的素材上云结果见 素材实测与清理记录;下方“迁移初始实测记录”保留历史阶段证据。

当前结果与边界

  • 入口位于原首页 tongji/pages/weekly,作为与「识糖小课堂」并列的图标卡片。
  • 微信端经 tongji/tang-detective/index 打开唐侦探原生首页;原 9 个主页面、5 个训练页面和登录/健康记录流程的源码保留。
  • 迁入 24 个原生页面、15 回故事;保留原始 473 项源快照与摘要,其中 269 个非媒体文件必须完整。媒体上云不改变原始摘要,没有重新生成图片、音频或视频。
  • native-adapter/tang-detective 隔离宿主与原生游戏的路径、页面生命周期、账号存档和媒体适配;不替换宿主 App.vue,不引入 TUICallKit 通话 SDK(软件开发工具包)。
  • H5(网页端)可构建;唐侦探入口显示需从微信打开的提示,不宣称网页端已可游玩。
  • 已通过正常登录后的管理界面上传素材,未提取长期密钥、改变桶权限、发布分发资源、部署后端、执行数据库迁移或推送 Git(版本库)。真机与发布验收仍未完成。

如何运行

在本项目目录执行:

cd /Users/dagedagededagege/Pictures/xuetang/TongjiUniApp
npm ci --ignore-scripts --no-audit --no-fund
npm run test:tang
npm run build:mp-weixin
npm run check:tang-output
node scripts/check-tang-native-compiler.cjs

微信开发者工具应导入本项目的 dist/build/mp-weixin,不要导入之前的 TUICallKit-Vue3 产物。首页进入「唐侦探」。命令行原生编译检查使用本机已安装的微信编译器;其他机器可用 TANG_WECHAT_COMPILER_DIR 指定编译器所在目录。该检查仅验证模板/样式语法,不会打开模拟器、登录、播放或上传。

网页端构建命令:

npm run build:h5

不升级原依赖版本。开发依赖沿用项目 package-lock.jsonCOS 工具可选依赖单独锁定在 scripts/tang-cos/package-lock.json,正常构建与本地测试不需要安装该可选依赖。

接口对接

config/api.js 是公开接口地址的单一来源,保留此宿主原地址 https://xt.zhenyangtang.com.cn/main.js 与原生构建插件共用它;生成的 tang-detective/utils/platformConfig.js 只包含公开地址,不包含密钥或登录令牌。

游戏复用宿主登录后的 token 请求头:

  • GET /api/tang/catalog
  • GET /api/tang/progress
  • POST /api/tang/saveProgress

只同步受白名单约束的章节、事件、卡片 ID(标识)和阅读位置;不上传健康回答、诊疗数据、剧情文字快照或音频。访客存档本地保留,不在登录后自动合并上传。账号切换、断网、登录过期及冲突场景保留独立状态,不能把请求已发送当作云端确认。

接口实现位于同级 ../server,沿用先前实现,目录纠正未再次改动后端。契约及部署前置条件见 后端说明接口契约。本轮未对 xt.zhenyangtang.com.cn 执行真实登录与存档联调;其他项目域名的历史结果不能用于判断此域名已成功或失败。

素材与 COS(对象存储)

源素材为 160 张图片、44 个音频、0 个视频,共 204 条路径,去重后 180 个对象,合计 24,052,082 字节。原始摘要清单不改写;清理后由真实远端清单和项目内清理凭证共同承接缺失媒体,非媒体源文件仍需逐项通过校验。

不需要任何密钥的远端回读复核命令(只发公开读取请求,生成本地审计回执):

node scripts/tang-cos/verify-admin-upload.mjs audit

本次使用 xuetang/server 已配置并开启的 COS,通过已有管理界面上传。实际地址位于 gz-1349751149.cos.ap-guangzhou.myqcloud.com 下的 uploads/images/20260908/uploads/voice/20260908/;地址来自上传结果,不由客户端猜测。清单第二版严格约束已实测的域名与对象命名。

build/tang-detective-cos-manifest.json 已由完整公开回读验证后激活。180 个对象的长度、SHA-256(摘要)、媒体类型全部一致;44 个音频均通过 Range(分段下载)206 与片段字节校验。实际回执为 build/tang-detective-admin-upload-receipt.json;旧直连配置失败的历史回执不代表当前上传状态。

原直连上传工具仍保留,要求完整原件与可信数据库证书;清理后直接运行其 inventoryupload 会明确拒绝缺失原件。不要关闭证书校验、重新生成源摘要或用测试清单激活项目。正常构建不读取数据库、密钥或项目外备份路径。

迁移初始实测记录(素材上云前的历史阶段)

检查 本轮结果 不能据此证明
npm run test:tang 72/72 通过 真实服务器与存储可用;COS 相关网络用例使用替身
微信构建 退出码 0 模拟器可操作、真机可用、上传通过
npm run check:tang-output 24 个原生页面、204 个媒体、328 个相对依赖通过;启动页与原宿主路由保留;原生接口地址与本宿主一致 云端存档成功
微信 wcc / wcsc 编译器 24 页均通过,退出码均为 0 界面、音质与播放体验验收
npm run build:h5 退出码 0 唐侦探支持网页游玩
原件与迁入快照 473/473 逐字节相同 内容、声音授权或医疗审签通过
原误迁目录及共享后端保护 515 个选定文件组合摘要与本轮开始时一致 整个仓库未被其他任务修改

仍待验证:目标部署接口与数据库、微信合法域名的当前配置、开发者工具完整交互与真机播放/存档、老年用户体验、医疗内容复核、发布验收。真实 COS 地址的公开字节回读已在后续阶段完成,但不等于微信真机验收。老年友好小游戏验证规范用于保持原玩法、素材与审核状态,不因迁移提升任何内容的验收等级。

文件保护与收尾

本轮没有删除此前误迁到 TUICallKit-Vue3 的内容;原唐侦探和共享后端均保留。新依赖、源码、构建产物保留在正确项目中供复核。测试与构建进程已结束,没有打开新窗口、网页、播放器或常驻服务;既有微信开发者工具窗口未操作、未关闭。

后续小程序同步复核(2026-09-08 16:26

用户继续要求「小程序也同步一下」后,重新执行微信构建和产物检查,均以退出码 0 结束。

开发者工具起初仍打开旧 TUICallKit-Vue3 产物;已通过导入选择框定位正确目录。后续复核时,工具已打开 TongjiUniApp/dist/build/mp-weixin,窗口名称为 tongji-uniapp,模拟器实际显示默认首页 tongji/pages/weekly,可见「唐侦探」和「识糖小课堂」两个入口。没有修改调试启动配置,没有清除存档、点击业务提交、播放音频或上传发布;没有执行完整唐侦探游玩与云存档验证。

微信开发专业智能体只读核对了配置、路由、接口及启动行为。需注意:宿主启动会自动登录并读取业务信息;默认首页在特定账号状态下可能自动创建或关联健康记录上下文,进入唐侦探也可能提交已有待同步进度。因此本次界面运行不能称为纯离线检查,也不能仅根据首页可见断言后台没有自动写入。

当时开发者工具代码质量面板显示主包尺寸、未使用脚本及本地图片/音频资源项目未通过。此处为上云前历史提示,不能作为后续远端产物的当前结论;后续体积变化见素材清理记录。线上接口联调、真机与发布验收边界不变。

收尾:构建和检查进程已结束,导入选择框已关闭。当前正确项目窗口保留供用户继续使用;原有窗口和应用未主动关闭。没有新增临时服务或本任务启动的音视频播放,也无关闭失败项。