wx-app/app.js
2019-06-23 22:26:19 +08:00

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: ''
}
})