此功能参照GitHub上的有插件源码,现在找不到那个网址了,就是借鉴别人的。
onLoad: function () {
var that = this
wx.getStorage({
key: 'accessToken',
success: function (res) {
//console.log(res)
wx.request({
url: +/user/userInfo.htm",
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: { accessToken: res.data },
success: function (res) {
//console.log(res.data.data.id)
var str = res.data.data.id + ''
if (res.data.data.avatarUrl) {
that.setData({
avatarUrl: res.data.data.avatarUrl,
nickName: res.data.data.nickName,
placeholder: str
})
} else {
that.setData({
avatarUrl: '../../resources/login-1.jpg',
placeholder: str
})
}
//console.log(that.data.placeholder)
that.draw();
}
})
}
})
},
draw(){
var size = this.setCanvasSize();//动态设置画布大小
var initUrl = this.data.placeholder;
this.createQrCode(initUrl, "mycanvas", 192, 192);
},
setCanvasSize: function () {
var size = {};
try {
var res = wx.getSystemInfoSync();
var scale = 750 / 686;//不同屏幕下canvas的适配比例;设计稿是750宽
var width = res.windowWidth / scale;
var height = width;//canvas画布为正方形
size.w = width;
size.h = height;
} catch (e) {
// Do something when catch error
console.log("获取设备信息失败" + e);
}
return size;
},
createQrCode: function (url, canvasId, cavW, cavH) {
//调用插件中的draw方法,绘制二维码图片
QR.api.draw(url, canvasId, cavW, cavH);
setTimeout(() => { this.canvasToTempImage(); }, 1000);
},
//获取临时缓存照片路径,存入data中
canvasToTempImage: function () {
var that = this;
wx.canvasToTempFilePath({
canvasId: 'mycanvas',
success: function (res) {
var tempFilePath = res.tempFilePath;
that.setData({
imagePath: tempFilePath,
// canvasHidden:true
});
},
fail: function (res) {
console.log(res);
}
});
},
//点击图片进行预览,长按保存分享图片
previewImg: function (e) {
var img = this.data.imagePath;
console.log(img);
wx.previewImage({
current: img, // 当前显示图片的http链接
urls: [img] // 需要预览的图片http链接列表
})
},
saveCodeImg: function () {
console.log(111)
wx.saveImageToPhotosAlbum({
filePath: this.data.imagePath,
success(res) {
wx.showToast({
title: '图片保存成功',
icon: 'success',
duration: 2000
})
}
})
},
onPullDownRefresh: function () {
wx.stopPullDownRefresh()
}
})
还有一个canvas用于生成二维码的文件,没有办法发出来,要了联系我1136395932