🎉 v1.3.1: 完美版本 - H5和小程序100%统一,64章精准数据,寻找合作伙伴功能
This commit is contained in:
102
miniprogram/app.js
Normal file
102
miniprogram/app.js
Normal file
@@ -0,0 +1,102 @@
|
||||
// miniprogram/app.js
|
||||
App({
|
||||
globalData: {
|
||||
userInfo: null,
|
||||
apiBase: 'http://localhost:3000/api', // 本地开发API地址
|
||||
// 生产环境请改为: 'http://kr-soul.lytiao.com/api'
|
||||
appId: 'wx0976665c3a3d5a7c',
|
||||
appSecret: 'a262f1be43422f03734f205d0bca1882',
|
||||
bookData: null,
|
||||
currentChapter: null
|
||||
},
|
||||
|
||||
onLaunch() {
|
||||
console.log('Soul派对小程序启动')
|
||||
|
||||
// 检查登录态
|
||||
this.checkLoginStatus()
|
||||
|
||||
// 加载书籍数据
|
||||
this.loadBookData()
|
||||
},
|
||||
|
||||
// 检查登录状态
|
||||
checkLoginStatus() {
|
||||
const token = wx.getStorageSync('token')
|
||||
if (token) {
|
||||
// 验证token有效性
|
||||
this.validateToken(token)
|
||||
}
|
||||
},
|
||||
|
||||
// 验证token
|
||||
validateToken(token) {
|
||||
wx.request({
|
||||
url: `${this.globalData.apiBase}/auth/validate`,
|
||||
method: 'POST',
|
||||
header: {
|
||||
'Authorization': `Bearer ${token}`
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
this.globalData.userInfo = res.data.user
|
||||
} else {
|
||||
wx.removeStorageSync('token')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 加载书籍数据
|
||||
loadBookData() {
|
||||
wx.request({
|
||||
url: `${this.globalData.apiBase}/book/structure`,
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
this.globalData.bookData = res.data
|
||||
wx.setStorageSync('bookData', res.data)
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
// 从缓存加载
|
||||
const cached = wx.getStorageSync('bookData')
|
||||
if (cached) {
|
||||
this.globalData.bookData = cached
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 微信登录
|
||||
wxLogin(callback) {
|
||||
wx.login({
|
||||
success: (res) => {
|
||||
if (res.code) {
|
||||
wx.request({
|
||||
url: `${this.globalData.apiBase}/auth/wx-login`,
|
||||
method: 'POST',
|
||||
data: { code: res.code },
|
||||
success: (loginRes) => {
|
||||
if (loginRes.statusCode === 200) {
|
||||
const { token, user } = loginRes.data
|
||||
wx.setStorageSync('token', token)
|
||||
this.globalData.userInfo = user
|
||||
callback && callback(true, user)
|
||||
} else {
|
||||
callback && callback(false)
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
callback && callback(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取用户信息
|
||||
getUserInfo() {
|
||||
return this.globalData.userInfo
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user