市面上的 MBTI 测试工具要么体验割裂、要么广告泛滥。本项目从零设计并实现了一款体验完整、视觉精致、可直接上线的性格测试小程序,覆盖「答题 → 出型 → 解读 → 海报 → 分享 → 历史」完整闭环,适合作为个人技术作品或轻量商业化产品。
点击空白处退出提示
市面上的 MBTI 测试工具要么体验割裂、要么广告泛滥。本项目从零设计并实现了一款体验完整、视觉精致、可直接上线的性格测试小程序,覆盖「答题 → 出型 → 解读 → 海报 → 分享 → 历史」完整闭环,适合作为个人技术作品或轻量商业化产品。
一款基于微信原生框架开发的 MBTI 性格测试小程序,50 题快速出型、16 型双版本文案、Canvas 2D 高清海报一键生成与分享,已通过微信代码质量扫描,支持本地预览与云开发双模式。
- 50 题标准测试:题目按 E/I、S/N、T/F、J/P 四维度科学分配,全奇数题数设计从根本上杜绝 50/50 平局。
- 16 型双版本文案:每个类型提供「专业版」与「轻松版」两套解读(概述 / 优势 / 劣势 / 适合职业),满足不同用户偏好。
- Canvas 2D 高清海报:实时绘制含 16 型融合风人物插画的结果海报,支持保存到相册,告别静态图片依赖。
- 社交分享:完整接入 `onShareAppMessage` / `onShareTimeline`,支持好友卡片与朋友圈分享。
- 历史记录:本地 + 云端双存储自动切换,静默获取 openid,无需授权弹窗即可留存测试记录。
- 双模式配置:`config.js` 一键切换本地预览 / 云开发,零注册即可跑通全流程。
1.独立开发 题型设计与计分算法
- 题库建模:50 题以 `questions.js` 数据驱动,每题含 `dim`(所属维度)与 `options[].pole`(指向该维度两极 E/I、S/N、T/F、J/P)。
- 结构防平局:维度题数刻意设为奇数(EI=13、SN=13、TF=13、JP=11),从结构上杜绝 50/50 平局;极端缺答时用 `>=` 兜底偏首字母。
- 计分映射:`utils/mbti.js` 的 `calculate(answers)` 遍历作答数组统计各 pole 命中数,拼接成 4 位类型码(如 `ENFP`),并输出各维度倾向百分比,用于结果页展示倾向强度。
2.产品设计 + UI/UX + 前端架构 + 云开发 + 插画生成与压缩 + 上线合规)
答题进度与历史存储(本地 / 云端双策略)
- 答题进度:`storage.js` 用 `wx.setStorageSync('mbti_progress', …)` 持久化当前题序与作答,支持中途退出后恢复。
- 历史记录:按 `config.js` 的 `useCloud` 开关自动分支——
- `false`(本地预览):`wx.setStorageSync('mbti_history', …)` 存本机,零注册即可跑通;
- `true`(云开发):静默调用云函数 `getWXContext().OPENID` 获取 openid 后写入云数据库,跨设备可查。
- 所有存储调用统一 `try/catch` 包裹,规避个别机型存储异常导致的崩溃。
3. Canvas 2D 海报引擎(纯前端、可兜底)
- 使用新版 `Canvas 2D` 接口(`canvas.createImage` + `getContext('2d')`)替代已废弃的





评论