欣文校园是 Xiuno BBS 论坛,欣文校园 App 是它的 24 页移动端。用 uni-app 从论坛到 App,我们实际走完了目录、登录态、数据契约、发布四道坎,这篇按顺序复盘。
目录:按变更频率分层,别按文件类型
一套代码要同时伺候小程序和 App,目录结构按「变更频率」而不是「文件类型」组织:接口层单独抽出来(不同端换实现,不动业务页),业务组件和页面按模块聚拢。改动成本在后期能差一个量级。
pages.json 的 easycom 是命脉
组件自动注册的 easycom 配置一旦丢失,ui-* 组件和富文本组件(如 mp-html)全部失效,页面框架直接塌陷。改 pages.json 时必须保留全部顶层 key——这是我们在一次配置合并里真实塌过的坑,从此 pages.json 进了 code review 清单。
登录态:论坛的密码是先 md5 再提交
对接 Xiuno BBS 有个反直觉细节:前台登录密码要先 md5 再 POST。配套的还有 token 存储与续期、退出清理。接口层另外要处理 CLI 场景的缺失(论坛的 model 钩子在 CLI 下不可用),服务端调试时别踩。
数据契约:内容解锁状态就是接口口径
帖子里的付费/广告解锁区块,接口用 read_type 字段区分(pay / ad / none),none 时内容不渲染——这不是 bug,是内容没配置。前后端把口径写成文档,能省掉无数次「App 上怎么这块是空的」的对线。
发布链路:wgt 热更有边界
wgt 热更包能覆盖前端资源,但不含渠道 SDK——只要动了 manifest 的渠道或模块配置,就必须重新云打包。真机验证要用自定义基座或正式包,标准基座上广告等原生能力全是假的。合规方面提前做:隐私政策单独成文、逐条披露每个第三方 SDK、个性化广告开关和注销入口放进设置——应用商店审核现在盯这些很紧。
写在最后
这条链路跑通后,WordPress 站点做 App(我们另一套方案)的很多经验是直接复用的:目录分层、数据契约、发布纪律都是通用的,差别只在接口层。如果你也想把现有论坛或内容站做成 App,欢迎和我们聊聊。