Vue 链接生成二维码

1.安装qrcodejs2

cnpm i qrcodejs2 --save 

或者

npm i qrcodejs2 --save 

2.在需要用的页面中引入

 <div id="qrcode" ref="qrcode"></div>

3.methods 方法中使用

qrcode () {
      let qrcode = new QRCode("qrcode", {

        width: 200, // 二维码宽度,单位像素

        height: 200, // 二维码高度,单位像素

        text: "https://www.baidu.com/" // 生成二维码的链接

      });

    },

4. 如果你想把 生成的二维码下载到本地可以使用html2canvas插件

npm install --save html2canvas

然后再所需页面中引入

import html2canvas from "html2canvas"

页面中

 <div ref="imageWrapper" style="width: 300px;height: 250px">
      <div id="qrcode" ref="qrcode" ></div>
  </div>

methods方法中使用

  dataURLtoBlob(baseurl) {
      const arr = baseurl.split(',')
      const mime = arr[0].match(/:(.*?);/)[1]
      const bstr = atob(arr[1])
      let n = bstr.length
      const u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], {
        type: mime
      })
    },
    // 下载二维码
    Download(){
      // 第一个参数是需要生成截图的元素,第二个是自己需要配置的参数,宽高等
      html2canvas(this.$refs.imageWrapper, {
        backgroundColor: null
      }).then((canvas) => {
        const dataURL = canvas.toDataURL('image/png')
        var ss = this.dataURLtoBlob(dataURL)
        console.log(ss)
        const content = ss // 后台返回二进制数据
        const blob = new Blob([content])
        const fileName = '二维码.png'
        if ('download' in document.createElement('a')) { // 非IE下载
          const elink = document.createElement('a')
          elink.download = fileName
          elink.style.display = 'none'
          elink.href = URL.createObjectURL(blob)
          document.body.appendChild(elink)
          elink.click()
          URL.revokeObjectURL(elink.href) // 释放URL 对象
          document.body.removeChild(elink)
        } else { // IE10+下载
          navigator.msSaveBlob(blob, fileName)
        }
      })
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MW0309

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值