90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
|
var QR = require("../../../lib/qrcode.js");
|
|||
|
|
|||
|
|
|||
|
Page({
|
|||
|
|
|||
|
/**
|
|||
|
* 页面的初始数据
|
|||
|
*/
|
|||
|
data: {
|
|||
|
canvasHidden: false,
|
|||
|
imagePath: '',
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
onLoad: function(options) {
|
|||
|
//option为上个页面传递过来的参数
|
|||
|
var jiaoyanCode = 'sorry,jiaoyanCode is loss';
|
|||
|
// if (options) {
|
|||
|
// jiaoyanCode = options.jiaoyanCode;
|
|||
|
// }
|
|||
|
console.log(jiaoyanCode);
|
|||
|
|
|||
|
var size = this.setCanvasSize(); //动态设置画布大小
|
|||
|
this.createQrCode(jiaoyanCode, "mycanvas", size.w, size.h);
|
|||
|
},
|
|||
|
|
|||
|
//适配不同屏幕大小的canvas
|
|||
|
setCanvasSize: function() {
|
|||
|
var size = {};
|
|||
|
try {
|
|||
|
var res = wx.getSystemInfoSync();
|
|||
|
var scale = 750 / 686; //不同屏幕下canvas的适配比例;设计稿是750宽 686是因为样式wxss文件中设置的大小
|
|||
|
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(canvasId);
|
|||
|
}, 1000);
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 获取临时缓存照片路径,存入data中
|
|||
|
*/
|
|||
|
canvasToTempImage: function() {
|
|||
|
var that = this;
|
|||
|
//把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。
|
|||
|
wx.canvasToTempFilePath({
|
|||
|
canvasId: 'mycanvas',
|
|||
|
success: function(res) {
|
|||
|
var tempFilePath = res.tempFilePath;
|
|||
|
console.log(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链接列表
|
|||
|
});
|
|||
|
},
|
|||
|
})
|