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 相关文章推荐
jQuery操作CheckBox的方法介绍(选中,取消,取值)
Feb 04 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 Javascript
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 获取select下拉列表框的值
2010/05/08 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
python实现文件的备份流程详解
2019/06/18 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
精彩的推荐信范文
2013/11/26 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
两只小狮子教学反思
2014/02/05 职场文书
2014年元旦活动方案
2014/02/15 职场文书
护士节策划方案
2014/05/19 职场文书
银行求职自荐信
2014/06/30 职场文书
学生保证书格式
2015/02/27 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
旅游项目合作意向书
2015/05/08 职场文书
离婚案件上诉状
2015/05/23 职场文书
务工证明怎么写
2015/06/18 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python