vue扫码枪扫描二维码,vue调用扫码功能

  vue扫码枪扫描二维码,vue调用扫码功能

  这篇文章给大家介绍了通过某视频剪辑软件的方式,实现扫码功能,实现步骤分为两步,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

  

提示

  这个插件只能在安全超文本传输协议协议下才能访问,http协议不好使,最好用vue2,vue3容易报错!

  

描述

  通过某视频剪辑软件的方式,实现扫码功能

  参考文档:vue-二维码阅读器去官网官方文档

  

效果展示

  

实现步骤:

  

步骤一(安装插件)

  新公共管理安装-保存vue-二维码-阅读器

  

步骤二(创建组件)

  因为可能多个页面都会用到,所以弄成了组件

  (1)在科学研究委员会下面的成分创建qrcode.vue

  (2)代码实现

  //qrcode.vue

  模板

  差异

  !-p class= error"{ error } }/p-

  !-错误信息-

  !- p class=decode-result

  扫描结果:

  b{{ result }}/b

  /p -

  !-扫描结果-

  !- p @click=openCamera 打开相机/p

  div v-show= show class=相机消息

  p @click=closeCamera 关闭相机/p

  p @click=openFlash 打开手电筒/p

  p @click=switchCamera 相机反转/p

  /div -

  二维码-流

  v-show=二维码

  :camera=camera

  :torch= torchActive

  @decode=onDecode

  @init=onInit

  差异

  div class=qr扫描仪

  div class=box

  div class=line/div

  div class=angle/div

  /div

  div class=txt

  将二维码/条码放入框内,即自动扫描

  div class=myQrcode 我的二维码/div

  /div

  /div

  /div

  /qrcode-stream

  /div

  /模板

  脚本

  //下载插件

  //cnpm安装-保存vue-二维码-阅读器

  //引入

  从" vue-二维码阅读器"导入{二维码流};

  导出默认值{

  //注册

  组件:{ QrcodeStream },

  data() {

  返回{

  结果: ,//扫码结果信息

  错误: ,//错误信息

  //show: false,

  //qrcode: false,

  二维码:真的,

  假的,

  摄像头:"正面",

  };

  },

  方法:{

  onDecode(结果){

  console.log(结果);

  这个. result=结果

  },

  异步奥尼特(承诺){

  const { capabilities }=等待承诺;

  const TORCH_IS_SUPPORTED=!能力.火炬

  尝试{

  等待承诺;

  } catch(错误){

  如果(错误。name===不允许的错误){

  this.error=错误:您需要授予相机访问权限;

  } else if(错误。name===未找到错误){

  this.error=错误:这个设备上没有摄像头;

  } else if(错误。name=== NotSupportedError ){

  this.error=错误:所需的安全上下文(HTTPS,本地主机);

  } else if(错误。name=== NotReadableError ){

  this.error=错误:相机被占用;

  } else if(错误。name=== OverconstrainedError ){

  this.error=错误:安装摄像头不合适;

  } else if(错误。name=== streamapinotsupporterror ){

  this.error=错误:此浏览器不支持流API ;

  }

  }

  },

  //打开相机

  //openCamera() {

  //this.camera=rear

  //this.qrcode=true

  //this.show=true

  //},

  //关闭相机

  //closeCamera() {

  //this.camera=off

  //this.qrcode=false

  //this.show=false

  //},

  //打开手电筒

  //openFlash() {

  //switch (this.torchActive) {

  //大小写为真:

  //this.torchActive=false

  //中断

  //大小写错误:

  //this.torchActive=true

  //中断

  //}

  //},

  //相机反转

  //switchCamera() {

  ////控制台。日志(这个。相机);

  //切换(this.camera) {

  //case front :

  //this.camera=rear

  //console.log(this.camera)

  //中断

  //case rear :

  //this.camera=front

  //console.log(this.camera)

  //中断

  //}

  //}

  },

  };

  /脚本

  样式范围。错误{

  字体粗细:粗体;

  颜色:红色;

  }。照相机信息{

  宽度:100%;

  高度:60px

  }。季度扫描仪{

  背景图像:线性梯度(

  0度,

  透明24%,

  rgba(32,255,77,0.1) 25%,

  rgba(32,255,77,0.1) 26%,

  透明27%,

  透明74%,

  rgba(32,255,77,0.1) 75%,

  rgba(32,255,77,0.1) 76%,

  透明77%,

  透明的

  ),

  线性梯度(

  90度,

  透明24%,

  rgba(32,255,77,0.1) 25%,

  rgba(32,255,77,0.1) 26%,

  透明27%,

  透明74%,

  rgba(32,255,77,0.1) 75%,

  rgba(32,255,77,0.1) 76%,

  透明77%,

  透明的

  );

  背景尺寸:3rem 3rem

  背景-位置:-1雷姆-1雷姆;

  宽度:100%;

  /*身高:100%;*/

  身高:100vh

  /*高度:288像素*/

  位置:相对;

  背景色:# 1110;

  /*背景色:# 111;*/

  }

  /* .qrcode-stream-wrapper {

  显示器:flex

  对齐-内容:居中;

  对齐-项目:居中;

  边距-顶部:82px

  明确:两者都有;

  } */

  /* .二维码-流-包装。二维码-流-相机{

  宽度:213像素

  身高:210像素

  明确:两者都有;

  边距-顶部:39px

  } */。二维码扫描仪。方框{

  宽度:213像素

  身高:213像素

  位置:绝对;

  左:50%;

  top:50%;

  transform: translate(-50%,-50%);

  溢出:隐藏;

  边框:0.1毫米实心rgba(0,255,51,0.2);

  /*背景:URL( http://资源。米色。世界/imgs/宫丛号。png’)无重复中心中心;*/

  }。二维码扫描仪. txt {

  宽度:100%;

  高度:35px

  行高:35px

  字体大小:14px

  文本对齐:居中;

  /*颜色:# f9f9f 9;*/

  边距:0自动;

  位置:绝对;

  top:70%;

  左:0;

  }。二维码扫描仪。我的二维码{

  文本对齐:居中;

  颜色:# 00ae10

  }。二维码扫描仪。行{

  高度:calc(100%-2px);

  宽度:100%;

  背景:线性梯度(180度,rgba(0,255,51,0) 43%,# 00ff 33 211%);

  边框-底部:3px solid # 00ff 33

  transform:平移y(-100%);

  动画:雷达-波束2s无限交替;

  动画-计时-函数:三次-贝塞尔(0.53,0,0.43,0.99);

  动画-延迟:1.4s

  }。二维码扫描仪。框:之后,二维码扫描仪。盒子:之前,二维码扫描仪。角度:之后,二维码扫描仪。角度:之前{

  内容:"";

  显示:块;

  位置:绝对;

  宽度:3vw

  身高:3vw

  边框:0.2红色纯色透明;

  }。二维码扫描仪。框:之后,二维码扫描仪。框:之前{

  top:0;

  边框-顶部-颜色:# 00ff33

  }。二维码扫描仪。角度:之后,二维码扫描仪。角度:之前{

  底部:0;

  border-bottom-color:# 00ff 33;

  }。二维码扫描仪。盒子:之前,二维码扫描仪。角度:之前{

  左:0;

  border-left-color:# 00ff 33;

  }。二维码扫描仪。框:之后,二维码扫描仪。角度:在{

  右:0;

  border-right-color:# 00ff 33;

  }

  @关键帧雷达波束{

  0% {

  transform:平移y(-100%);

  }

  100% {

  transform:平移y(0);

  }

  }

  /风格

  (3)在需要扫码的页面引入

  //

  从" @/components/qrcode.vue "导入二维码;

  (4)注册组件

  //

  组件:{

  vue-qrcode: qrcode,

  },

  (5)使用组件

  //在需要展示二维码的地方进行渲染

  vue-二维码/

  //如果上面这个不好使,可以用下面这个

  vue-二维码/vue-二维码

  关于vue实现二维码扫描功能的这篇文章到此为止。更多关于vue二维码扫描的信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: