-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
Copy pathapp.js
91 lines (88 loc) · 2.19 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
const config = require('./config')
global.isDemo = true
App({
onLaunch(opts) {
const that = this;
wx.getBackgroundFetchData({
fetchType: 'pre',
success(res) {
that.globalData.backgroundFetchData = res;
console.log('读取预拉取数据成功')
},
fail() {
console.log('读取预拉取数据失败')
wx.showToast({
title: '无缓存数据',
icon: 'none'
})
},
complete() {
console.log('结束读取')
}
})
console.log('App Launch', opts)
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
env: config.envId,
traceUser: true,
})
}
wx.setBackgroundFetchToken({
token: 'getBackgroundFetchToken',
})
},
onShow(opts) {
console.log('App Show', opts)
},
onHide() {
console.log('App Hide')
},
globalData: {
hasLogin: false,
openid: null,
backgroundFetchData: null,
},
// lazy loading openid
getUserOpenId(callback) {
const self = this
if (self.globalData.openid) {
callback(null, self.globalData.openid)
} else {
wx.login({
success(data) {
wx.request({
url: config.openIdUrl,
data: {
code: data.code
},
success(res) {
console.log('拉取openid成功', res)
self.globalData.openid = res.data.openid
callback(null, self.globalData.openid)
},
fail(res) {
console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
callback(res)
}
})
},
fail(err) {
console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
callback(err)
}
})
}
},
// 通过云函数获取用户 openid,支持回调或 Promise
getUserOpenIdViaCloud() {
return wx.cloud.callFunction({
name: 'wxContext',
data: {}
}).then(res => {
this.globalData.openid = res.result.openid
return res.result.openid
})
}
})