项目中经常又这样的需求,要求将字符串生成二维码,并下载下来

一般分为 生成一个二维码展示并下载,对于这种你只需调用 qrcodejs2生成二维码就可以了 下载也是按钮触发

今天我们要说的是 批量下载,具体做法是

首先下载资源

npm install  qrcodejs2 --save

在对于的文件中引入,在template中添加如下的html代码

<div id="qrcode" style="display:none"></div>

然后就是获得一个 数组字符串,就是需要生成二维码的字符串 弄成一个数组

    let newArr = getNewArra()for (let i = 0; i < newArr.length; i++) {(function (code) {new QRCode('qrcode', {width: 200,height: 200, // 高度text: code, // 二维码内容correctLevel: QRCode.CorrectLevel.H})downloadQrCode()})(newArr[i])}function downloadQrCode () {let myselfCanvas = document.getElementById('qrcode').getElementsByTagName('canvas')let img = document.getElementById('qrcode').getElementsByTagName('img')let ah = document.createElement('a')let imgURL = myselfCanvas[0].toDataURL('image/jpg')let u = navigator.userAgentif (u.indexOf('Trident') !== -1 && u.indexOf('Windows') !== -1) {let bstr = atob(imgURL.split(',')[1])let n = bstr.lengthlet u8arr = new Uint8Array(n)while (n--) {u8arr[n] = bstr.charCodeAt(n)}let blob = new Blob([u8arr])window.navigator.msSaveOrOpenBlob(blob, '二维码' + '.' + 'png')} else if (u.indexOf('Firefox') > -1) {let blob = base64ToBlob(imgURL)let evt = document.createEvent('HTMLEvents')evt.initEvent('click', true, true)ah.download = ' 'ah.href = URL.createObjectURL(blob)ah.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))} else {img.src = myselfCanvas[0].toDataURL('image/jpg')ah.href = img.srcah.download = '二维码图片'ah.click()}}// base64转blobfunction base64ToBlob (code) {let parts = code.split(';base64,')let contentType = parts[0].split(':')[1]let raw = window.atob(parts[1])let rawLength = raw.lengthlet uInt8Array = new Uint8Array(rawLength)for (let i = 0; i < rawLength; ++i) {uInt8Array[i] = raw.charCodeAt(i)}return new Blob([uInt8Array], { type: contentType })}

解释一下:可以将downloadQrCode()函数绑定到单独下载的按钮上去,这样就变成一个一个下载的
而  我是使用了匿名函数 一个一个的去生成二维码 并自动去调用下载。

vue中 生成二维码 并自动批量下载相关推荐

  1. Vue中生成二维码的一种方式—vue-qr

    Vue中生成二维码的一种方式-vue-qr vue实现二维码生成(vue + vue-qr)

  2. vue 中生成二维码,合成海报

    1.分别引入 qrcodejs2.html2canvas 执行以下命令行 npm install qrcodejs2 npm install html2canvas 2.下载canvas2image, ...

  3. 在Vue中生成二维码扫描在手机上跳转页面

    使用方法: 安装vue-qr npm install vue-qr --save 在components新建一个vue组件,eg:vueQr.vue (以下为组件完整代码) <template& ...

  4. 在Vue中生成二维码(前端生成二维码:Qrcode)

    1.首先我们需要使用"npm install --save qrcode"下载依赖包 npm install --save qrcode 2.在要使用qrcode的页面导入qrco ...

  5. 【工具】Vue中生成二维码组件——vue-qr

    [工具]Vue中生成二维码组件--vue-qr npm地址--https://www.npmjs.com/package/vue-qr 注:不支持IE浏览器 效果 1.安包 npm install v ...

  6. Vue项目生成二维码

    场景: [民主测评.闭卷测试] Vue项目生成二维码,使用手机浏览器扫码录入答题 一,创建vue项目,样式布局,接口联调, npm run build 打包成dist 文件,让后台发送到服务器中,页面 ...

  7. C#中生成二维码(QR码)与读取二维码内容

    使用开源类库ZXing.dll可以在C#中生成二维码和解析二维码为指定的字符串(含url) 新建windows窗体应用程序QRCodeDemo,.net 4.5,将默认的Form1重命名为FormQu ...

  8. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  9. vue前端生成二维码,实现扫码下载功能

    vue前端生成二维码,实现扫码下载功能 首先需要安装一个插件 npm install --save qrcodejs2 然后在需要的页面引入插件,最后使用 <template><di ...

最新文章

  1. 干货! AI 推断解决方案栈 Vitis AI 全流程独家解析
  2. HTML5 虚拟键盘出现挡住输入框的解决办法
  3. [Java]jdbc[转]
  4. 用java写一个简单的区块链(下)
  5. python input函数赋值法_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...
  6. 我遇到的一个怪现象!
  7. Final Cut Pro X如何去视频水印/视频去水印
  8. vue切换css样式
  9. Python 可变数据类型和不可变数据类型 - Python零基础入门教程
  10. python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例
  11. matlab要求 基础,Matlab基础考试要求.doc
  12. 283、移动零(python)
  13. 如何打开计算机的Oracle服务,win10系统手动启动oracle服务的操作方法
  14. 多媒体计算机硬件指示,多媒体计算机硬件系统构成
  15. Pytorch中函数参数dim的理解
  16. Python+OpenCV手势识别Mediapipe(基础篇)
  17. 计算机网络正常无法打开网页,电脑网络正常但是网页无法打开怎么样解决
  18. 武汉有哪些大学 计算机专业比较强,武汉有哪些计算机好的大学排名
  19. 【项目管理】项目进度管理
  20. OSG三维渲染引擎编程学习之五:“第一章:OSG介绍” 之 “1.5 OSG模块”

热门文章

  1. 【附源码】Python计算机毕业设计万达影院售票管理系统
  2. 计算机课程制作月历,【信息技术】《制作月历》教学反思
  3. 《零基础数学建模》——灰色关联分析(GRA)关于系统分析与综合评价的应用
  4. 社群团购,服装类目适合做社群团购吗?
  5. 信号发生器在无刷电机调速器设计中的应用
  6. 闲聊go开源微服务框架pitaya(1)
  7. java 编写台球代码_台球碰撞 (Java代码)
  8. 测试TXIubm9ib2R5
  9. Ansys workbench分析应用基础(6)
  10. 前端——面试(熊猫优选)