import { wxLoginCustomer, getMemberInfo } from './api/index' import CustomHook from 'spa-custom-hooks'; let globalData = { // token: wx.getStorageSync('token'), token: '', primary: '#B08771', bottomLift: '' } let pathMap = [ '/pages/detailDis/product', '/pages/detailDis/case', '/pages/detailDis/realpic', '/pages/consult/detail', '/pages/productVideo/index', ] App({ globalData, onLaunch: function (op) { console.log('options', op.query) //获取当前设备信息 const WindowInfo = wx.getWindowInfo() if (WindowInfo.safeArea.top > 20) { this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom } }, onShow(op) { // 授权登录 var userId = null if (op.query.scene) { let temp = op.query.scene.split('_') userId = temp[2] } const token = wx.getStorageSync('token') || '' if (token) { getMemberInfo({ isAuth: true }).then(res => { if (res.code !== 200) { setTimeout(() => { wx.showLoading({ title: '正在重新登录...', mask: true }) }, 200) setTimeout(() => { wx.hideLoading() }, 1000) wx.login({ timeout: 5000, success: (res) => { var userId = null if (op.query.scene) { let temp = op.query.scene.split('_') userId = temp[2] } if (res.code) { //发起网络请求 wxLoginCustomer({ code: res.code, userId }).then(res => { wx.setStorageSync('token', res.data.token) this.globalData.token = res.data.token if (op.query.scene) { let temp = op.query.scene.split('_') wx.navigateTo({ url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`, }) } console.log('拿到token了', res.data.token); if (res && res.data.member) { wx.setStorageSync('member', res.data.member) wx.setStorageSync('openid', res.data.member.openid) wx.setStorageSync('sessionKey', res.data.sessionKey) } else { console.log('登录失败!') } }) } else { console.log('登录失败!' + res) } }, fail(err) { console.log(err) } }) } else { this.globalData.token = token wx.setStorageSync('member', res.data) if (op.query.scene) { let temp = op.query.scene.split('_') wx.navigateTo({ url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`, }) } } }) } else { // 授权登录 wx.login({ timeout: 5000, success: (res) => { if (op.query.scene) { let temp = op.query.scene.split('_') userId = temp[2] } if (res.code) { //发起网络请求 wxLoginCustomer({ code: res.code, userId }).then(res => { wx.setStorageSync('token', res.data.token) this.globalData.token = res.data.token if (op.query.scene) { let temp = op.query.scene.split('_') wx.navigateTo({ url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`, }) } console.log('拿到token了', res.data.token); if (res && res.data.member) { wx.setStorageSync('member', res.data.member) wx.setStorageSync('openid', res.data.member.openid) wx.setStorageSync('sessionKey', res.data.sessionKey) } else { console.log('登录失败!') } }) } else { console.log('登录失败!' + res) } }, fail(err) { console.log(err) } }) } // const token = wx.getStorageSync('token') || '' // if(token){ // if (options.query.scene) { // let temp = options.query.scene.split('_') // wx.navigateTo({ // url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`, // }) // } // } } }) CustomHook.install({ 'Login': { name: 'Login', watchKey: 'token', onUpdate(val) { //有token则触发此钩子 return !!val; } } }, globalData || 'globalData')