1:动态tabBar,item项,相册或者手机拍照
clickPhoto() {
var that = this;
wx.showActionSheet({
itemList: ['从相册中选择', '拍照'],
itemColor: "#2874dc",
success: function (res) {
if (!res.cancel) {
if (res.tapIndex == 0) {
that.chooseWxImageShop('album'); // 从相册中选择
} else if (res.tapIndex == 1) {
that.chooseWxImageShop('camera'); // 手机拍照
}
}
}
})
},
2:用户选择图片
chooseWxImageShop: function (type) {
var that = this;
wx.chooseImage({
count: 4, // 允许用户选择几张图片
sizeType: ['original', 'compressed'],
sourceType: [type],
success: function (res) {
var arr = that.data.photoArr.concat(res.tempFilePaths);
that.setData({
photoArr: arr
})
var imgArr = [];
if (arr.length != 0){
console.log('外层');
for (var i in arr) {
// 调函数图片转 base64
that.urlTobase64(arr[i]).then((res) => {
imgArr.push(res);
that.baseImgData.imgArr = imgArr;
})
.catch((res) => {
// app.setToast('请求失败');
})
}
that.setData({
baseImgData: imgArr
})
}
},
fail: function (res) {
console.log('photo fail', res)
}
})
},
3:图片转base64传临时路径
urlTobase64(url) {
return new Promise((resolve, reject) => { // promise 解决异步问题
wx.request({
url: url,
responseType: 'arraybuffer', //最关键的参数,设置返回的数据格式为arraybuffer
success: (res) => {
var base64 = wx.arrayBufferToBase64(res.data);
base64 = 'data:image/jpeg;base64,' + base64;
resolve(base64);
},
fail: (res) => {
reject(false);
}
})
})
},
来源:https://www.cnblogs.com/youaremysunshine19961002/p/11376920.html