微信小程序> 微信小程序动态生成二维码

微信小程序动态生成二维码

浏览量:2710 时间: 来源:She_lock

效果图如下:

小程序

实现

wxml

!-- 存放二维码的图片--view class='container'    image bindtap="previewImg" mode="scaleToFill" src="{{imagePath}}"/image/view!-- 画布,用来画二维码,只用来站位,不用来显示--view class="canvas-box"    canvas hidden="{{canvasHidden}}" style="width: 686rpx;height: 686rpx;background:#f1f1f1;" canvas-id="mycanvas" //view

wxss

.container {    display: flex;    align-items: center;    justify-content: center;width: 100%;height: 100%;}.container image {    width: 686rpx;    height: 686rpx;    background-color: #f9f9f9;}.canvas-box {    position: fixed;    top: 999999rpx;    left: 0;}

js

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链接列表});},})

qrcode.js 可以去 这里 下载。

详细源码请查看 https://github.com/demi520/wxapp-qrcode

PS:鉴于有个别网友私信反应还是出不来二维码图片,这里特地上传了一份源码。源码如下:https://download.csdn.net/download/She_lock/11982918
特别说明:这份源码和这篇文章分享的源码几乎一模一样,下载导入即可运行。能不下载自己调试就自己调试,省的还得花5积分。

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎