-
Notifications
You must be signed in to change notification settings - Fork 17
/
app.js
111 lines (86 loc) · 2.77 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//app.js
App({
onLaunch: function() {
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}
}
})
},
// 下载多张图片接口(保证图片下载顺序)
downloadFileArrayImgs: function(arrayImgs) {
console.log(1);
wx.showLoading({
title: '图片下载中...',
mask: true,
});
console.log(2);
return new Promise((resolve, reject) => {
console.log(3);
let temporary_arrayImgs = []; //存储下载后的临时图片地址
let index = 0; //下载的图片索引值
// 需要递归循环执行下载图片且确保下载图片的顺序
(function downloadFileFunction() {
console.log(4);
console.log(`数组值为:${arrayImgs[index]}`);
wx.downloadFile({
url: arrayImgs[index],
success: function(res) {
wx.hideLoading();
if (res.statusCode === 200) {
console.log(`下载的图片地址:${res.tempFilePath}`);
temporary_arrayImgs.push(res.tempFilePath);
console.log(5);
if ((index + 1) == arrayImgs.length) {
// 图片已经下载完成,返回图片数组结果
resolve(temporary_arrayImgs);
console.log(6);
} else {
// 图片未下载完成,下载下一张图片
index++;
downloadFileFunction();
console.log(7);
}
} else {
wx.showToast({
title: '图片下载失败!',
icon: 'none',
duration: 2000,
success: function() {
reject();
}
})
}
}
})
})() //自调用函数写法
})
},
globalData: {
userInfo: null
}
})