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 兼容firefox的一些问题
May 21 Javascript
ajax 缓存 问题 requestheader
Aug 01 Javascript
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
vue-cli3中vue.config.js配置教程详解
May 29 Javascript
微信小程序在线客服自动回复功能(基于node)
Jul 03 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
layui在form表单页面通过Validform加入简单验证的方法
Sep 06 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
JavaScript数组去重算法实例小结
2018/05/07 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
python 从远程服务器下载东西的代码
2013/02/10 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python小白垃圾回收机制入门
2020/06/09 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
2014年创卫实施方案
2014/02/18 职场文书
公关活动策划方案
2014/05/25 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
拙作再改《我的收音机情缘》
2022/04/05 无线电