// app.js import { userLogin, getMyInfo } from '~/api/user' import { createStoreBindings } from 'mobx-miniprogram-bindings' import { 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') if (uid) { let userInfo = await getMyInfo() 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, // 胶囊高度(自定义内容可与胶囊高度保证一致) } })