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 相关文章推荐
javascript 函数调用规则
Aug 26 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
javaScript基础语法介绍
Feb 28 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
Jan 18 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
element-ui使用导航栏跳转路由的用法详解
Aug 22 Javascript
js实现GIF动图分解成多帧图片上传
Oct 24 Javascript
node静态服务器实现静态读取文件或文件夹
Dec 03 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
flash用php连接数据库的代码
2011/04/21 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
jquery实现动态操作select选中
2015/02/11 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
Python爬取网易云音乐热门评论
2017/03/31 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
为什么需要版本控制
2016/10/28 面试题
施工班组长岗位职责
2014/01/05 职场文书
行政专员的岗位职责
2014/03/10 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers