Files
MBTI_wang/miniprogram/pages/test-select/index.js
Ghost c946584a7d feat: 双端小程序分享路径与测试入口上下文统一
1、修复了结果页、测试页与 test-select 的跳转上下文丢失问题。

2、调整 api/Test 与小程序 app/share 逻辑,补全第三方/企业场景参数透传。

3、优化 DISC/MBTI/PDP/SBTI 结果页样式与按钮交互,一致化微信与抖音端。

Made-with: Cursor
2026-04-14 16:40:20 +08:00

80 lines
1.9 KiB
JavaScript

// pages/test-select/index.js
const app = getApp()
Page({
data: {
permFace: true,
permMbti: true,
permSbti: true,
permPdp: true,
permDisc: true,
/** 四类入口均被企业权限关闭时提示,避免误以为白屏 */
allTestsDisabled: false
},
onLoad(options) {
try {
require('../../utils/thirdPartyContext.js').ingestThirdPartyOnPageLoad(options || {}, app)
} catch (e) {}
try {
wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'] })
} catch (e) {}
// 分享直达时尽早完成静默登录,避免用户点进子页时仍无 token
app.ensureLogin().catch(() => {})
this._syncPerms()
},
onShow() {
this._syncPerms()
},
_syncPerms() {
const p = app.globalData.enterprisePermissions
const permFace = !p || p.face !== false
const permMbti = !p || p.mbti !== false
const permSbti = !p || p.sbti !== false
const permPdp = !p || p.pdp !== false
const permDisc = !p || p.disc !== false
this.setData({
permFace,
permMbti,
permSbti,
permPdp,
permDisc,
allTestsDisabled: p && !permMbti && !permSbti && !permPdp && !permDisc
})
},
goMBTI() {
wx.navigateTo({ url: '/pages/test/mbti' })
},
goSBTI() {
wx.navigateTo({ url: '/pages/test/sbti' })
},
goPDP() {
wx.navigateTo({ url: '/pages/test/pdp' })
},
goDISC() {
wx.navigateTo({ url: '/pages/test/disc' })
},
onShareAppMessage() {
const { getSharePath } = require('../../utils/share')
return {
title: '4 大详细性格测试,来测测你的性格类型',
path: getSharePath('/pages/test-select/index')
}
},
onShareTimeline() {
const { buildShareQuery } = require('../../utils/share')
return {
title: '4 大详细性格测试,来测测你的性格类型',
query: buildShareQuery()
}
}
})