2.5 KiB
2.5 KiB
miniprogram 功能还原分析报告
一、对比结论
| 项目 | miniprogram(甲方) | miniprogram2(你写的) |
|---|---|---|
| 页面分享 | 仅 read、referral 有 | 几乎所有页面都有 |
| scene 解析 | 无 | 有 utils/scene.js |
| 推荐码获取 | 分散(userInfo?.referralCode 等) | 统一 app.getMyReferralCode() |
| 书籍 API | /api/book/all-chapters | /api/miniprogram/book/all-chapters |
| 特有页面 | vip、member-detail | scan、profile-edit |
二、已完成的还原项
1. 基础能力(app.js + utils/scene.js)
- 新增
utils/scene.js:扫码 scene 参数编解码,支持mid、id、ref - app.js:
- 引入
parseScene,handleReferralCode支持options.scene解析 - 新增
getMyReferralCode():统一获取邀请码 - 新增
getSectionMid(sectionId):根据 id 查 mid loadBookData改为/api/miniprogram/book/all-chapters
- 引入
2. 页面分享(onShareAppMessage)
已为以下页面补充分享,路径统一带 ref 参数:
- index、chapters、match、my
- read、referral(原有,已统一用 getMyReferralCode)
- search、settings、purchases、privacy
- withdraw-records、addresses、addresses/edit
- agreement、about、vip、member-detail
3. read.js 分享逻辑
- 使用
app.getMyReferralCode()替代userInfo?.referralCode || wx.getStorageSync('referralCode') - 保持
onShareAppMessage、onShareTimeline行为不变
4. API 路径修正
app.loadBookData:/api/book/all-chapters→/api/miniprogram/book/all-chaptersindex.loadBookData、loadFeaturedFromServer、loadLatestChapters:同上chapters.loadDailyChapters:同上
三、未改动项(保留甲方逻辑)
- vip 相关接口:
/api/vip/members、/api/vip/status、/api/vip/profile仍为原路径,未改为/api/miniprogram/*(若 soul-api 无对应 miniprogram 接口,需后端补充) - 页面结构:保留 vip、member-detail,未引入 scan、profile-edit
四、后续建议
- soul-api 路由:确认
/api/miniprogram/book/all-chapters已注册;若 vip 需在小程序使用,建议在 miniprogram 组下增加等价接口。 - referral.js:检查是否已使用
app.getMyReferralCode(),若仍用旧方式可统一替换。 - read.js 的 mid 支持:miniprogram2 的 read 支持
mid参数(便于扫码直达),若需要可在 miniprogram 的 read 中补充sectionMid与getShareConfig的 mid 逻辑。