从校园社区到 App:我们用 uni-app 走过的完整链路

欣文校园是 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,欢迎和我们聊聊。

上一篇 Xiuno BBS 插件开发踩坑记:编译缓存、伪静态与 utf8 截断