zoukankan      html  css  js  c++  java
  • vue 动态生成二维码

    npm install qrcodejs2 --save

    这里的效果可以实现在安卓或者苹果手机支持长按功能扫描。

    html 

              <div id="qrcode" class="qrcode_img" style=" 151px;height:151px;z-index: 4;display: none"></div>
              <img :src="src" class="qrcode_img" style=" 151px;height:151px;z-index: 4;" alt="">

    一开始我没有用img,在安卓手机不能长按识别出来,就苹果可以。 然后呢, 按我写法就可以了。  原理就是用拿到插件生成img 的 src 赋值到img就可以。 

    script  

    import QRCode  from "qrcodejs2"
    
    export default {
            data() {
                return {
                  code_data: '恭喜您,获取神兽朝里一枚!哈哈哈哈', // 接二维码的变量
                  src: '',
                }
            },
            methods: {
              // 生成二维码
              qrcode () {
                let that = this;
                let qrcode = new QRCode('qrcode', {
                   151,
                  height: 151,        // 高度
                  text:  this.code_data,   // 二维码内容
                  // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
                  // background: '#f0f',   // 背景色
                  // foreground: '#ff0'    // 前景色
                })
                setTimeout(()=>{
                  var mycanvas1=document.getElementsByTagName('canvas')[0];
                  //将转换后的img标签插入到html中
                  var img=this.convertCanvasToImage(mycanvas1);
                },300)
              },
              convertCanvasToImage(canvas) {
                //新Image对象,可以理解为DOM
                var image = new Image();
                // canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
                // 指定格式 PNG
                image.src = canvas.toDataURL("image/png");
                this.src = canvas.toDataURL("image/png")
                return image;
              },     
            },
            mounted() {
              this.$nextTick (function () {
                this.qrcode();
              })
              this.get_stamps()
              this.wx_share()
            },
            components: {
    
            },
        }
    

      

    
    
  • 相关阅读:
    每日日报
    剑指 Offer 18. 删除链表的节点(LeetCode)
    java的访问权限
    java从键盘输入
    剑指 Offer 22. 链表中倒数第k个节点(快慢指针)(LeetCode)
    面试题 02.03. 删除中间节点(LeetCode)
    21. 合并两个有序链表(Leetcode)
    计算总线数据传输率
    时钟周期、总线周期(机器周期)区别
    书单(个人)
  • 原文地址:https://www.cnblogs.com/dashaxiong/p/12218298.html
Copyright © 2011-2022 走看看