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 相关文章推荐
破除网页鼠标右键被禁用的绝招大全
Dec 27 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
Javascript 代码也可以变得优美的实现方法
Jun 22 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
详解适配器在JavaScript中的体现
Sep 28 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
详解Vue 项目中的几个实用组件(ts)
Oct 29 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
JavaScript监听触摸事件代码实例
Dec 30 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
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python的socket编程入门
2018/01/29 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python与mysql数据库交互的实现
2020/01/06 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
打架检讨书100字
2014/01/19 职场文书
《故乡》教学反思
2014/04/10 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
自我推荐信格式模板
2015/03/24 职场文书
篮球赛新闻稿
2015/07/17 职场文书
商业计划书格式、范文
2019/03/21 职场文书
pandas数值排序的实现实例
2021/07/25 Python