vue实现扫码功能


Posted in Javascript onJanuary 17, 2020

最近在项目中碰见一个打开摄像头扫码的功能,项目最后打包成app,用的是hBuilder打的包,刚好hBuilder打包集成H5+sdk,就可以直接用人家的sdk了。

demo地址:vue-scan-demo

代码实现:

<template>
 <div class="scan">
 <div id="bcid">
  <div style="height:40%"></div>
  <p class="tip">...载入中...</p>
 </div>
 <footer>
  <button @click="startRecognize">1.创建控件</button>
  <button @click="startScan">2.开始扫描</button>
  <button @click="cancelScan">3.结束扫描</button>

  <button @click="closeScan">4.关闭控件</button>
 </footer>
 </div>
</template>

<script type='text/ecmascript-6'>
 let scan = null;

 export default {
 data() {
  return {
  codeUrl: '',
  }
 },
 methods: {
  //创建扫描控件
  startRecognize() {
  let that = this;
  if (!window.plus) return;
  scan = new plus.barcode.Barcode('bcid');
  scan.onmarked = onmarked;

  function onmarked(type, result, file) {
   switch (type) {
   case plus.barcode.QR:
    type = 'QR';
    break;
   case plus.barcode.EAN13:
    type = 'EAN13';
    break;
   case plus.barcode.EAN8:
    type = 'EAN8';
    break;
   default:
    type = '其它' + type;
    break;
   }
   result = result.replace(/\n/g, '');
   that.codeUrl = result;
   alert(result);
   that.closeScan();

  }
  },
  //开始扫描
  startScan() {
  if (!window.plus) return;
  scan.start();
  },
  //关闭扫描
  cancelScan() {
  if (!window.plus) return;
  scan.cancel();
  },
  //关闭条码识别控件
  closeScan() {
  if (!window.plus) return;
  scan.close();
  },
 }
 }
</script>
<style lang="less">
 .scan {
 height: 100%;
 #bcid {
  width: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom:3rem;
  text-align: center;
  color: #fff;
  background: #ccc;
 }
 footer {
  position: absolute;
  left: 0;
  bottom: 1rem;
  height: 2rem;
  line-height: 2rem;
  z-index: 2;
 }
 }
</style>

预览:

打开Hbuilder,新建项目,将目录指向 /dist ,然后右键转换成移动App,真机usb连接运行

效果图:

vue实现扫码功能

通过这个例子,像其他的调用手机原生功能如:语音输入、摇一摇、摄像头、文件系统、微信分享等也可以通过上述方式实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 控制非法字符的输入代码
Dec 04 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
探讨Vue.js的组件和模板
Oct 27 Javascript
关于jquery中attr()和prop()方法的区别
May 28 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
js实现轮播图效果 z-index实现轮播图
Jan 17 #Javascript
js键盘事件实现人物的行走
Jan 17 #Javascript
javascript实现简易的计算器
Jan 17 #Javascript
JavaScript简易计算器制作
Jan 17 #Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 #Javascript
js布局实现单选按钮控件
Jan 17 #Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 #Javascript
You might like
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
javascript整除实现代码
2010/11/23 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
Python爬虫代理IP池实现方法
2017/01/05 Python
Python中常见的异常总结
2018/02/20 Python
python如何使用腾讯云发送短信
2020/09/17 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
办理信用卡工作证明
2014/09/30 职场文书
师范生见习报告
2014/10/31 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书