Vue使用QRCode.js生成二维码

1.安装qrcode

npm install qrcode

2.组件中引入qrcode

import QRCode from 'qrcode'

3.html代码

<div><span class="right-btn" @click="makeQRCode">生成二维码</span></div><div class="column-body-content text-center"><div class="qr-code"><img id="image" :src="qrcode"><p>扫码预览</p></div></div><style lang="stylus" scoped>

4.使用qrcode:调用QRCode.toDataURL(二维码扫描的url)方法,可生成所需要的二维码

// 生成二维码makeQRCode() {

    QRCode.toDataURL("http://aaa.vv.com/erp/card?authkey="+this.companyId).then(imgData => {

        if(imgData) {

            let file =this.convertBase64UrlToBlob(imgData);

            // 上传到服务器(这里是上传到阿里云,this.oss是直接把阿里云的oss连接作为Vue对象的属性来调用,put是上传文件的方法)this.oss.put('qrcode' + Math.random()*10 + '.png', file).then(result =>{

                this.qrcode =result.url;// 将已上传的图片的url赋值给img的srcalert('生成成功')

            })

        }

    });

},//从 base64 转换成 fileconvertBase64UrlToBlob(urlData) {

    let bytes = window.atob(urlData.split(',')[1]);//去掉url的头,并转换为byte//处理异常,将ascii码小于0的转换为大于0let ab =new ArrayBuffer(bytes.length);

    let ia =new Uint8Array(ab);

    for(let i = 0; i < bytes.length; i++) {

        ia[i] = bytes.charCodeAt(i);

    }

    returnnewBlob([ab] , {type : 'image/png'});

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。