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的一些注意
Dec 06 Javascript
深入探寻javascript定时器
Jan 02 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
Nov 23 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
JavaScript数组操作函数汇总
Aug 05 Javascript
Vue.js 表单校验插件
Aug 14 Javascript
基于EasyUI的基础之上实现树形功能菜单
Jun 28 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
MVVM 双向绑定的实现代码
Jun 21 Javascript
vue通过style或者class改变样式的实例代码
Oct 30 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
Oct 24 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验证码生成原理和实现
2016/01/24 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
原生js实现随机点名
2020/07/05 Javascript
浅谈Python的异常处理
2016/06/19 Python
使用python绘制常用的图表
2016/08/27 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
农村婚庆司仪主持词
2014/03/15 职场文书
物理学专业自荐信
2014/06/11 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
公司介绍信范文
2015/01/31 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
《称赞》教学反思
2016/02/17 职场文书
《搭石》教学反思
2016/02/18 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL