|
@@ -1,80 +1,84 @@
|
|
|
// app.js
|
|
|
import {
|
|
|
- userLogin
|
|
|
+ userLogin,
|
|
|
+ getUserInfo
|
|
|
} from '~/api/user'
|
|
|
import {
|
|
|
- createStoreBindings
|
|
|
+ createStoreBindings
|
|
|
} from 'mobx-miniprogram-bindings'
|
|
|
import {
|
|
|
- store
|
|
|
+ store
|
|
|
} from '~/store/index'
|
|
|
let storeBindings
|
|
|
App({
|
|
|
- onLaunch() {
|
|
|
- this.checkIsIos()
|
|
|
- this.getNavbarInfo()
|
|
|
- },
|
|
|
- async onShow(options) {
|
|
|
- this.storeBindings = createStoreBindings(this, {
|
|
|
- store,
|
|
|
- actions: ['setUser']
|
|
|
- })
|
|
|
- let shareUid = options.query.uid
|
|
|
- let uid = wx.getStorageSync('uid')
|
|
|
- let userInfo = wx.getStorageSync('user')
|
|
|
- if (uid && userInfo) {
|
|
|
- this.setUser(userInfo)
|
|
|
- } else {
|
|
|
- this.login(shareUid)
|
|
|
- }
|
|
|
- },
|
|
|
- login(shareUid) {
|
|
|
- wx.login({
|
|
|
- success: async (res) => {
|
|
|
- if (res.code) {
|
|
|
- // 获取openid
|
|
|
- let data = {
|
|
|
- code: res.code,
|
|
|
- shareUid
|
|
|
- }
|
|
|
- let userRes = await userLogin(data)
|
|
|
- this.setUser(userRes.data)
|
|
|
- wx.setStorageSync('uid', userRes.data.uid)
|
|
|
- wx.setStorageSync('user', userRes.data)
|
|
|
- this.globalData.userInfo = userRes.data
|
|
|
- if (getApp().callBack) {
|
|
|
- getApp().callBack(userRes);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- checkIsIos: function () {
|
|
|
- wx.getSystemInfo({
|
|
|
- success: (res) => {
|
|
|
- if (res.system.search('iOS') != -1) {
|
|
|
- this.globalData.isIOS = true
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getNavbarInfo() {
|
|
|
- // 获取系统信息
|
|
|
- const systemInfo = wx.getSystemInfoSync();
|
|
|
- // 胶囊按钮位置信息
|
|
|
- const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
|
|
|
- // 导航栏高度 = 状态栏高度 + 44
|
|
|
- this.globalData.navBarHeight = systemInfo.statusBarHeight + 44;
|
|
|
- this.globalData.menuRight = systemInfo.screenWidth - menuButtonInfo.right;
|
|
|
- this.globalData.menuTop = menuButtonInfo.top;
|
|
|
- this.globalData.menuHeight = menuButtonInfo.height;
|
|
|
- },
|
|
|
- globalData: {
|
|
|
- userInfo: null,
|
|
|
- isIOS: false, // 判断设备是否为苹果
|
|
|
- navBarHeight: 0, // 导航栏高度
|
|
|
- menuRight: 0, // 胶囊距右方间距(方保持左、右间距一致)
|
|
|
- menuTop: 0, // 胶囊距底部间距(保持底部间距一致)
|
|
|
- menuHeight: 0, // 胶囊高度(自定义内容可与胶囊高度保证一致)
|
|
|
+ onLaunch() {
|
|
|
+ this.checkIsIos()
|
|
|
+ this.getNavbarInfo()
|
|
|
+ },
|
|
|
+ async onShow(options) {
|
|
|
+ this.storeBindings = createStoreBindings(this, {
|
|
|
+ store,
|
|
|
+ actions: ['setUser']
|
|
|
+ })
|
|
|
+ let shareUid = options.query.uid
|
|
|
+ let uid = wx.getStorageSync('uid')
|
|
|
+ if (uid) {
|
|
|
+ let userInfo = await getUserInfo()
|
|
|
+ this.setUser(userInfo.user)
|
|
|
+ if (getApp().callBack) {
|
|
|
+ getApp().callBack();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.login(shareUid)
|
|
|
}
|
|
|
+ },
|
|
|
+ login(shareUid) {
|
|
|
+ wx.login({
|
|
|
+ success: async (res) => {
|
|
|
+ if (res.code) {
|
|
|
+ // 获取openid
|
|
|
+ let data = {
|
|
|
+ code: res.code,
|
|
|
+ shareUid
|
|
|
+ }
|
|
|
+ let userRes = await userLogin(data)
|
|
|
+ this.setUser(userRes.data)
|
|
|
+ wx.setStorageSync('uid', userRes.data.uid)
|
|
|
+ wx.setStorageSync('user', userRes.data)
|
|
|
+ this.globalData.userInfo = userRes.data
|
|
|
+ if (getApp().callBack) {
|
|
|
+ getApp().callBack(userRes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ checkIsIos: function () {
|
|
|
+ wx.getSystemInfo({
|
|
|
+ success: (res) => {
|
|
|
+ if (res.system.search('iOS') != -1) {
|
|
|
+ this.globalData.isIOS = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getNavbarInfo() {
|
|
|
+ // 获取系统信息
|
|
|
+ const systemInfo = wx.getSystemInfoSync();
|
|
|
+ // 胶囊按钮位置信息
|
|
|
+ const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
|
|
|
+ // 导航栏高度 = 状态栏高度 + 44
|
|
|
+ this.globalData.navBarHeight = systemInfo.statusBarHeight + 44;
|
|
|
+ this.globalData.menuRight = systemInfo.screenWidth - menuButtonInfo.right;
|
|
|
+ this.globalData.menuTop = menuButtonInfo.top;
|
|
|
+ this.globalData.menuHeight = menuButtonInfo.height;
|
|
|
+ },
|
|
|
+ globalData: {
|
|
|
+ userInfo: null,
|
|
|
+ isIOS: false, // 判断设备是否为苹果
|
|
|
+ navBarHeight: 0, // 导航栏高度
|
|
|
+ menuRight: 0, // 胶囊距右方间距(方保持左、右间距一致)
|
|
|
+ menuTop: 0, // 胶囊距底部间距(保持底部间距一致)
|
|
|
+ menuHeight: 0, // 胶囊高度(自定义内容可与胶囊高度保证一致)
|
|
|
+ }
|
|
|
})
|