82 lines
2.4 KiB
JavaScript
82 lines
2.4 KiB
JavaScript
//app.js
|
|
// global.regeneratorRuntime = require('./utils/regenerator/runtime-module')
|
|
|
|
import api from './utils/api.js';
|
|
|
|
|
|
App({
|
|
|
|
async onLaunch() {
|
|
// 展示本地存储能力
|
|
// var logs = wx.getStorageSync('logs') || []
|
|
// logs.unshift(Date.now())
|
|
// wx.setStorageSync('logs', logs)
|
|
var openId = wx.getStorageSync('openId') || '';
|
|
|
|
this.globalData.openId = openId
|
|
|
|
if (openId) { // 已经有openid了 可以直接获取用户信息
|
|
console.log('init get user info');
|
|
await this.getUserInfo(openId);
|
|
return;
|
|
} else {
|
|
// 登录并获取openid
|
|
wx.login({
|
|
success: res => {
|
|
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
|
console.log('login==>', res);
|
|
if (res.errMsg == 'login:ok') {
|
|
this.processLogin(res.code);
|
|
}
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
// 获取用户信息
|
|
|
|
},
|
|
async processLogin(code) {
|
|
try {
|
|
let data = await api.userLogin(code);
|
|
// 获取openid
|
|
this.globalData.openId = data.openid;
|
|
// 保存用户openid
|
|
wx.setStorageSync('openId', this.globalData.openId);
|
|
|
|
} catch (e) {
|
|
console.log('login error->', e);
|
|
}
|
|
},
|
|
getOpenId() {
|
|
return new Promise(async(resolve, reject) => {
|
|
if(this.globalData.openId){
|
|
resolve(this.globalData.openId)
|
|
}else{
|
|
wx.login({
|
|
success:async res => {
|
|
if (res.errMsg == 'login:ok') {
|
|
await this.processLogin(res.code);
|
|
resolve(this.globalData.openId)
|
|
}
|
|
}
|
|
});
|
|
}
|
|
})
|
|
},
|
|
async getUserInfo() {
|
|
try {
|
|
let openid = this.globalData.openId;
|
|
let userInfo = await api.userInfo(openid, false);
|
|
console.log('init user info data', userInfo);
|
|
this.globalData.userInfo = userInfo;
|
|
} catch (e) {
|
|
console.log('init user info error', e);
|
|
}
|
|
},
|
|
|
|
globalData: {
|
|
wxuserInfo: null,
|
|
userInfo: null,
|
|
openId: ''
|
|
}
|
|
}) |