js动态生成二维码

LinMeng 等级 715 0 0
标签: 二维码前端

需求:项目需要根据链接实时生成二维码,当检测终端是PC时,将当前项目链接生成二维码供用户手机端使用

判断终端是否为mobile

function isMobile () {
  let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
  return flag;
}

链接准备

this.$store.state.getQRCodeUrl = document.URL;
//链接也可以用window.location.href 获取
 if (!window.common.isMobile()) {
     this.$router.push({path: '/QRCodepage'}); 
      return;
   } 

插件准备

QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。
下载命令 npm install qrcodejs2 --save

生成二维码

<template>
  <div class="QRCodePage">
      <div class="content">
        <div class="titleCen">请扫描二维码支付</div>
        <div id='qrcode' class="qrCode"></div>
      </div>
  </div>
</template>

<script>
import QRCode from 'qrcodejs2';
export default {
  name: 'QRCodePage',
  data () {
    return {
      url: ''
    };
  },
  created () {
    this.url = this.$store.state.getQRCodeUrl;
  },
  mounted () {
    this.createQRCode();
  },
  methods: {
    createQRCode () {
        var qrcode =  new QRCode('qrcode', {
          text: this.url,
          width: 300,
          height: 300,
          colorDark: '#000000',
          colorLight: '#ffffff',
          correctLevel: QRCode.CorrectLevel.H
        });
        qrcode.makeCode(this.url); // 生成二维码
    }
  }

};
</script>

<style lang='less'>
.QRCodePage{
    background-color: #f7f7f7;
    height: 100%;
    .content{
        width: 300px;
        height: 300px;
        margin: 20px auto;
        .titleCen{
          text-align:center;
        }
        .qrCode{
          width: 90%;
          margin:20px auto;
        }
    }
}

</style>

###注意: 在本地调试时报错-----vue.runtime.esm.js?2b0e:1888 Error: code length overflow. (1676>1056) 发布到测试上用测试域名就好了

收藏
评论区

相关推荐

JavaScript 引擎、事件循环、任务队列
一、先引用别人的一幅图 (很好的概括了JS主线程和任务队列是如何执行的) 1.JS引擎和runtime的区别: 引擎:解释并编译代码,让它变成
😎手撕吊打面试官系列面试题
js基础 1. 用js打印一个乘法表 这一题面试官考察的是你关于js的打印相关基础api的熟悉程度,以及基本的数学常识,送分题 console.log( 111 212 224 313 326 339 414 428 4312 4416 515 5210 5315 5420 5525
项目实战之---AES 加密
ajax/index.js import axiosApi from '../js/fetch'; import { baseUrl, headerParams } from '../js/baseUrl'; // import引用AES源码js import CryptoJS from 'cryptojs/cryptojs'; console.lo
Android webview 与 js(Vue) 交互
js 与原生交互分为两种情况:js 调用原生方法,原生调用 js 方法。 本文将对这两种情况分别讲解,H5 端用 vue 实现。 一、前期准备(Vue项目准备) 本文的 H5 端用Vue 实现,所以在正式开始前先把 Vue 项目环境准备好。 项目写好后,执行 npm run serve 命令启动项目,启动成功后会在命令
面试之手撕 JS 继承
提到JS继承,你首先想到的什么? 面试 继承方式 优缺点...,js继承作为曾经的苦主,我看了忘,忘了看,看了又忘,OMG,都0212年了面试官还不放过我。 ok
44道JS难题,还不来考考?
国外某网站给出了44道JS难题,试着做了下,只做对了17道。这些题涉及面非常广,涵盖JS原型、函数细节、强制转换、闭包等知识,而且都是非常细节的东西,透过这些小细节可以折
44道JS难题,做对一半就是高手
国外某网站给出了44道JS难题,试着做了下,只做对了17道。这些题涉及面非常广,涵盖JS原型、函数细节、强制转换、闭包等知识,而且都是非常细节的东西,透过这些小细节可以折
几个常用js库,别再重复造轮子了
年底了,总结下今年用到的一些有意思的《js轮子》(只是大概列出些比较有意思的库,每个标题都是超链接,可点击自行查阅) 希望能对您有用! 如有意思的 轮子 可以在评论列出一起讨论下 color(https://links.jianshu.com/go?tohttps%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fco
js去除字符串
js去除字符串js<DOCTYPE html<html<head <title</title</head<body</body<script type"text/javascript" function delHtmlTag(str){   return str.replace(/<^/g,""); } var s
js删除表格中的某一行
点击表格中的内容,删除某一行正文js代码如下 function removeTd(obj) { obj.parentNode.parentNode.remove();}
日常必备的JS工具函数大全
为元素添加on方法 Element.prototype.on Element.prototype.addEventListener; NodeList.prototype.on function (event, fn) 、 []['forEach'].call(this, function (el) el.on(ev
只听说过CSS in JS,怎么还有JS in CSS?
CSS in JS是一种解决css问题想法的集合,而不是一个指定的库。从CSS in JS的字面意思可以看出,它是将css样式写在JavaScript文件中,而不需要独立出.css、.less之类的文件。将css放在js中使我们更方便的使用js的变量、模块化、treeshaking。还解决了css中的一些问题,譬如:更方便解决基于状态的样式,更容易追溯依赖关
React - Fiber原理
浏览器渲染 屏幕刷新率(FPS) 浏览器的正常绘制频率是60次/秒,小于这个值时,用户会感觉到卡顿 绘制一次的称为一帧,平均每帧16.6ms 帧 每个帧的开头包括样式计算、布局和绘制 js的执行是单线程,js引擎和页面渲染引擎都占用主线程,GUI渲染和Javascript执行两者是互斥的 如果某个js任务执行时间过长,浏览器会推迟渲染,每
前端 - 常见的异常捕获方法
前端异常捕获在ES3之前js代码执行的过程中,一旦出现错误,整个js代码都会停止执行,这样就显的代码非常的不健壮。从ES3开始,js也提供了类似的异常处理机制,从而让js代码变的更健壮,程序执行的过程中出现了异常,也可以让程序具有了一部分的异常恢复能力。js异常的特点是,出现不会导致JS引擎崩溃,最多只会终止当前执行的任务。回归正题,我们该如何在程序异常发生
javascript实践教程-05-数据类型
本节目标1. 掌握js中7种数据类型。2. 掌握5种基本数据类型number、string、boolean、null、undefined的声明。3. 掌握js中数组的声明和数组相关的方法。4. 掌握js中对象的声明和属性、方法的使用。 内容摘要本篇介绍了js中的7种数据类型,其中5种基本数据类型:number、string、boolean、null、unde