html5qrcode的使用(自留笔记)

H5实现扫描二维码 扫描二维码是app常用的一种基础功能,该功能使用户能够方便地登录、浏览网站、获取信息等操作,鉴于此,把该功能引入H5,利用H5实现扫描二维码功能在把扫描二维码功能引入H5的过程中,通过对比5中工具库找到了两种比较好用的第三方库。接下来就对这两种库进行记录。 阅读详情
AI摘要

本文介绍了如何在基于Vue2和vant框架的H5应用中集成html5-qrcode库,实现扫码功能,以便在没有APK支持时处理扫码请求并执行相应的业务逻辑。

本次项目为基于vue2+vant的H5,套壳APP,无法使用APK的扫码时选择使用h5qrcode进行扫码,实现扫码单。

1.安装html5-qrcode

 npm i html5-qrcode
2.在所需组件处使用

模版:

 <div class="canTab" @click="startScan" v-if="!isScanning"><van-icon name="scan" size="45" color="#fff" /></div>    


<div class="scan" v-if="isScanning">
      <div class="scan-box">
        <div id="scanning" width="800px"></div>
      </div>
      <span class="close-scan" @click="stopScan">
          <svg t="1681382339822" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2626" width="200" height="200">
            <path d="M512 960c-247.039484 0-448-200.960516-448-448S264.960516 64 512 64 960 264.960516 960 512 759.039484 960 512 960zM512 128.287273c-211.584464 0-383.712727 172.128262-383.712727 383.712727 0 211.551781 172.128262 383.712727 383.712727 383.712727 211.551781 0 383.712727-172.159226 383.712727-383.712727C895.712727 300.415536 723.551781 128.287273 512 128.287273z" fill="#ffffff" p-id="2627"></path>
            <path d="M557.05545 513.376159l138.367639-136.864185c12.576374-12.416396 12.672705-32.671738 0.25631-45.248112s-32.704421-12.672705-45.248112-0.25631l-138.560301 137.024163-136.447897-136.864185c-12.512727-12.512727-32.735385-12.576374-45.248112-0.063647-12.512727 12.480043-12.54369 32.735385-0.063647 45.248112l136.255235 136.671523-137.376804 135.904314c-12.576374 12.447359-12.672705 32.671738-0.25631 45.248112 6.271845 6.335493 14.496116 9.504099 22.751351 9.504099 8.12794 0 16.25588-3.103239 22.496761-9.247789l137.567746-136.064292 138.687596 139.136568c6.240882 6.271845 14.432469 9.407768 22.65674 9.407768 8.191587 0 16.352211-3.135923 22.591372-9.34412 12.512727-12.480043 12.54369-32.704421 0.063647-45.248112L557.05545 513.376159z" fill="#ffffff" p-id="2628"></path>
          </svg>
        </span>
    </div>

JS:

  // 引入扫描二维码
  import { Html5Qrcode } from 'html5-qrcode';


   data() {
      return {
        isScanning: false, // 扫码
      }


method: {
   //扫码接单
      startScan(){
        this.isScanning = true
        this.$nextTick(() => {
          this.html5QrCode = new Html5Qrcode('scanning');
          this.html5QrCode.start({
              facingMode: "environment"
            }, {
              fps: 10,
              aspectRatio: 1, // 4:3:1.333334 16:9:1.777778 1:1:1.0
              qrbox: {
                width: 280,
                height: 280
              },
            }, (decodedText, decodedResult) => {
            let codeUrl = decodedText; //获取二维码信息
            // 以下为自己所需的业务逻辑处理
            
            
              this.stopScan() // 结束扫码
              // alert("识别结果" + decodedText)
            }, errorMessage => {
            },
          )
            .catch(err => {});
        });
      },
      // 结束扫码
      stopScan() {
        this.html5QrCode.stop().then(() => {
          this.isScanning = false;
        })
      },

}

style:

  /* 扫码样式 */
  .scan {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;

    .scan-box {
      width: 100%;
    }

    .close-scan {
      position: absolute;
      top: 20px;
      right: 20px;

      svg {
        width: 40px;
        height: 40px;
      }
    }
  }
  .start-scan{
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 100px);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    width: 200px;
    height: 50px;
    background: #00aaff;
    color: #fff;
    border-radius: 10px;
  }

这是复制别人的逻辑,已经表明出处,仅供自己记录笔记,防止以后使用时忘记。

完整代码(此处仅有扫描二维码代码,其他已摘去):

<template>
  <div class="driverMyBox">
    <div class="canTab" @click="startScan" v-if="!isScanning">
        <van-icon name="scan" size="45" color="#fff" />
    </div>
    <div class="scan" v-if="isScanning">
      <div class="scan-box">
        <div id="scanning" width="800px"></div>
      </div>
      <span class="close-scan" @click="stopScan">
          <svg t="1681382339822" class="icon" viewBox="0 0 1024 1024" version="1.1"                 xmlns="http://www.w3.org/2000/svg" p-id="2626" width="200" height="200">
            <path d="M512 960c-247.039484 0-448-200.960516-448-448S264.960516 64 512 64 960 264.960516 960 512 759.039484 960 512 960zM512 128.287273c-211.584464 0-383.712727 172.128262-383.712727 383.712727 0 211.551781 172.128262 383.712727 383.712727 383.712727 211.551781 0 383.712727-172.159226 383.712727-383.712727C895.712727 300.415536 723.551781 128.287273 512 128.287273z" fill="#ffffff" p-id="2627"></path>
            <path d="M557.05545 513.376159l138.367639-136.864185c12.576374-12.416396 12.672705-32.671738 0.25631-45.248112s-32.704421-12.672705-45.248112-0.25631l-138.560301 137.024163-136.447897-136.864185c-12.512727-12.512727-32.735385-12.576374-45.248112-0.063647-12.512727 12.480043-12.54369 32.735385-0.063647 45.248112l136.255235 136.671523-137.376804 135.904314c-12.576374 12.447359-12.672705 32.671738-0.25631 45.248112 6.271845 6.335493 14.496116 9.504099 22.751351 9.504099 8.12794 0 16.25588-3.103239 22.496761-9.247789l137.567746-136.064292 138.687596 139.136568c6.240882 6.271845 14.432469 9.407768 22.65674 9.407768 8.191587 0 16.352211-3.135923 22.591372-9.34412 12.512727-12.480043 12.54369-32.704421 0.063647-45.248112L557.05545 513.376159z" fill="#ffffff" p-id="2628"></path>
          </svg>
       </span>
    </div>
  </div>
</template>

<script type='text/javascript'>

 // 引入扫描二维码
  import { Html5Qrcode } from 'html5-qrcode';
  export default {
    data() {
      return {
        //扫码
        isScanning: false, // 是否正在扫一扫
      }
    //扫码接单
    startScan(){
        this.isScanning = true;
        this.$nextTick(() => {
          this.html5QrCode = new Html5Qrcode('scanning');
          this.html5QrCode.start({
              facingMode: "environment"
            }, {
              fps: 10,
              aspectRatio: 1, // 4:3:1.333334 16:9:1.777778 1:1:1.0
              qrbox: {
                width: 280,
                height: 280
              },
            }, (decodedText, decodedResult) => {
            let codeUrl = decodedText; //获取扫码信息

            //这里进行自己的业务逻辑操作

             this.stopScan() // 结束扫码
              // alert("识别结果" + decodedText)
            }, errorMessage => {
            },
          )
            .catch(err => {});
        });
     },
     // 结束扫码
     stopScan() {
        this.html5QrCode.stop().then(() => {
          this.isScanning = false;
        })
     },
  }
</script>
<style lang='scss' scoped>
      /* 扫码样式 */
  .scan {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;

    .scan-box {
      width: 100%;
    }

    .close-scan {
      position: absolute;
      top: 20px;
      right: 20px;

      svg {
        width: 40px;
        height: 40px;
      }
    }
  }
  .start-scan{
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 100px);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    width: 200px;
    height: 50px;
    background: #00aaff;
    color: #fff;
    border-radius: 10px;
  }
</style>

技术借鉴出处:

https://www.cnblogs.com/kinwai/p/17316033.html

基于html5QrCode实现的H5扫码功能(uni-app v2版本) 【代码】 基于html5QrCode实现的H5扫码功能(uni-app v2版本) 阅读详情

相关推荐

html5-qrcode:跨平台HTML5 QR码阅读器

HTML5-QRCode (现在支持条形码:) 跨平台HTML5 QR码和条形码阅读器。 使用此轻量级库可以轻松/快速地将QR码,条形码和其他常见的代码扫描功能集成到您的Web应用程序。 支持使用智能手机(Android / IOS)中的集成网络摄像头或摄像头轻松进行扫描。 支持从文件或智能手机上的默认相机扫描代码。 最近添加的内容支持各种格式的条形码扫描。 支持两种API Html5QrcodeScanner具有UI的端到端扫描器,集成少于十行代码。 Html5Qrcode功能强大的API集,可用于构建UI,而无需担心相机设置,处理权限,读取代码等问题。 支持在设备上扫描本地文件是新增功能,并且对不支持智能手机中的内联网络摄像机访问的Web浏览器很有帮助。 注意:这不会将文件上传到任何服务器-一切都在本地完成。 图:在Android Pixel 3上运行 图:在And

使用 html5-qrcode 扫码

html5-qrcode是轻量级和跨平台的QR码和条形码扫码的JS库,集成二维码、条形码和其他一些类型的代码扫描功能,代码依赖于Zxing-js库优势:1、支持扫描不同类型的条形码和二维码2、支持不同平台,Android、IOS、MacOS、Windows或Linux3、支持不同的浏览器,如Chrome、Firefox、Safari、Edge4、支持相机扫描以及本地文件5、支持自定义,如闪光/火炬支持、缩放等注意:直接访问摄像头,涉及到隐私,所以环境必须是`HTTPS`实现。

小张同学的博客 1万+

html5Qrcode.zip

html手机扫码DOM 已经实现拍照扫码与上传扫码 内包含qrcode.js qrcode.lib.min.js quagga.min.js zepto.js等相关js文件

VUE html5-qrcode H5扫一扫功能

安装 npm i html5-qrcode。5、必须在销毁页面前关闭扫码功能否则会报错。3、获取摄像权限在created调用。6、在扫码页面引用组件。

sxm的博客 1万+

《iOS之一起进大厂》系列-秒杀面试官的RunLoop底层原理面试题

Runloop是iOS面试中的必考题,不管大厂小厂都会问到。 这里包括了Runloop几乎所有的面试题,还有中肯完整的答案解释。

空杯子 1156

2026年10月11日 ECOC 2026(第52届欧洲光通信大会)深度研究报告

本届大会吸引超过和,技术会议共发表,覆盖20个主题领域(——从全体会议、厂商发布到论文分布,"为AI集群提供光互连"取代传统电信传输成为绝对主线。本报告的核心结论有五点:其一,,行业讨论焦点已转向3.2T与400G/通道技术;其二,,行业共识转向"按场景分层部署"——scale-up、scale-out、scale-across各有最优解;

weixin_51184047的博客 264

HTML5 QRCode 开源项目教程

HTML5 QRCode 是一个基于 Web 的开源 QR 码和条形码扫描库,由 mebjas 开发并基于 Apache License 2.0 许可发布。这个库轻量级且跨平台,适用于在 Web 应用程序中快速集成 QR 码、条形码和其他常见代码的扫描功能。它支持两种类型的 API: - **Html5QrcodeScanner**:一个端到端的扫描器,带有 UI,可以通过不到十行代码集成。 -...

gitblog_00531的博客 1083

ISO18000-6B/6C(EPC C1G2)两个射频识别(RFID)标准协议的技术特点

目前读写器基本上是采用IMPINJ的R2000芯片和E710芯片开发,因为ISO18000-6B标准的现在应用很少,E710芯片已经不再支持ISO18000-6B标准,选择上就只有采用R2000芯片开发的UR6258超高频读写器以及手持机,这个在项目应用上需要留意。尽管ISO18000-6B标准具有上述优点,但也存在一些不足之处,特别是多标签阅读性能远远满足不了现在的应用需求,近年来发展停滞,绝大部分应用已经被ISO18000-6C(EPC C1G2)取代;#RFID# #物联网# #标准协议#

RFID设备与应用介绍 2158

HTML5-QRCode 二维码和条形码扫描库使用教程

HTML5-QRCode 是一个跨平台的 HTML5 二维码和条形码扫描库,支持在 Web 应用中快速集成二维码、条形码和其他常见代码的扫描功能。 ## 项目概述 HTML5-QRCode 是一个轻量级的 JavaScript 库,具有以下主要特性: - 🔲 支持扫描多种类型的条形码和二维码 - 🖥 支持 Android、iOS、macOS、Windows 和 Linux 等多个平台 -

gitblog_00642的博客 893

微信小程序 - 最新实现人脸识别认证功能,使用官方微信小程序人脸识别身份验证接口及常见的人脸核验、用户实名认证、身份证件与人脸是否匹配、是否活体、领取业务人脸认证等各种示例(验证活体人脸是否匹配源码)

微信小程序中实现人脸识别认证,微信小程序人脸识别认证-微信开放接口,如何为微信小程序添加人脸识别和身份验证功能,如何为微信小程序集成人脸识别与身份验证,微信人脸识别实名认证集成指南,识别失败,人脸识别接口怎么调用,前后端完整示例代码demo,微信小程序基于小程序实现人脸识别对比,人脸识别报错,微信人脸核身接口能力,微信小程序实名认证 人脸核验 人脸识别,微信小程序实名认证与人脸核身接口全解析,微信小程序-人脸识别+输出人脸匹配信息,微信小程序实名认证人脸核验人脸识别,微信小程序实名认证:wx.startFa

🏆 前端领域优质创作者 3277

labview高低拼接的理解

计算机的一个字节由8位组成,无符号的8位整形表示的范围为0~255,范围太小了,所以用双字节,即16位整形表示更大范围的数字0 ~65535。2.labview中的高低拼接实质是高8位字节左移8位与低8位字节相加,结果是双字节整形。

qwerqwerdhr的博客 839

HTML5-QRCode二维码扫描库完整使用指南

HTML5-QRCode是一个跨平台的HTML5二维码和条形码扫描库,支持在Web应用中快速集成二维码、条形码和其他常见代码的扫描功能。这个轻量级的JavaScript库能够在Chrome、Firefox、Safari、Edge等主流浏览器中完美运行。 ## 项目概述 HTML5-QRCode是一个功能强大的扫描库,具有以下核心特性: - 支持扫描多种类型的条形码和二维码 - 支持Andro

gitblog_00313的博客 1132

【数据集】中国各类水文专业常用数据集合集

对中国各类水文专业常用数据集进行整理并总结

WW、forever的博客 9307

如何快速实现Web扫码功能:Html5-QRCode完整使用指南

Html5-QRCode是一个跨平台的HTML5二维码扫描库,能够帮助开发者轻松在网页中集成二维码扫描功能。无论是PC端还是移动端,只需简单几步,就能实现专业级的扫码体验。 ## 🚀 为什么选择Html5-QRCode? Html5-QRCode作为轻量级的网页二维码解决方案,具有以下优势: - **跨平台兼容**:支持主流浏览器,无需安装额外插件 - **使用简单**:几行代码即可实现完整

gitblog_01087的博客 1273

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2395

【推荐100个unity插件】Animator 的替代品?—— Animancer Pro插件的使用介绍

Animancer与Unity Animator对比及使用指南 摘要: 本文对比了Animancer与Unity官方Animator的核心差异,分析了Animancer的优势特点。Animancer采用代码驱动模式,相比Animator的状态机系统更灵活高效,支持实时调试、动态混合和深度逻辑集成。文章详细介绍了Animancer的快速使用方法,包括动画播放、切换和触发机制,并区分了免费版与专业版的功能差异。适合需要高效动画开发、复杂交互逻辑的中小项目,为开发者提供了一种现代化的动画解决方案。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2435

HTML5-QRCode 二维码扫描库完整使用指南

HTML5-QRCode 是一个跨平台的 HTML5 二维码和条形码扫描库,支持在 Web 应用中快速集成多种代码的扫描功能。该库采用纯 JavaScript 实现,无需额外依赖,能够在主流浏览器和移动设备上稳定运行。 ## 为什么选择 HTML5-QRCode? 在当今数字化时代,二维码和条形码已成为连接物理世界与数字世界的重要桥梁。HTML5-QRCode 库提供了完整的解决方案,具有以下

gitblog_00202的博客 1251

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【亲测免费】 html5-qrcode 项目使用教程

html5-qrcode 项目的目录结构如下: ``` html5-qrcode/ ├── examples/ ├── minified/ ├── scripts/ ├── src/ ├── tests/ ├── third_party/ ├── all-contributorsrc ├── babelrc ├── codacy.yml ├── gitignore ├── npmignore ├...

gitblog_00517的博客 1715

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Html5-QRCode跨平台二维码扫描库完整使用指南

Html5-QRCode是一个轻量级、跨平台的QR码和条形码扫描库,专为HTML5兼容浏览器设计。该库支持在多种设备和浏览器上进行二维码和条形码扫描,为开发者提供了简单易用的集成方案。 ## 核心特性 - **跨平台支持**:支持Android、IOS、MacOS、Windows和Linux系统 - **多浏览器兼容**:兼容Chrome、Firefox、Safari、Edge、Opera等主

gitblog_00214的博客 1287

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

前端扫码神器:5分钟学会Html5-QRCode的终极使用指南

Html5-QRCode是一款跨平台的前端二维码扫描工具,能够帮助开发者快速在网页中集成高效的二维码识别功能。无论是构建扫码登录系统、商品信息查询还是移动支付界面,这款轻量级工具都能满足你的需求,让二维码交互变得简单而强大。 ## 🚀 什么是Html5-QRCode? Html5-QRCode是一个基于HTML5技术的二维码扫描库,它利用设备的摄像头或本地文件实现二维码解析。作为纯前端解决方

gitblog_00728的博客 1080

HTML5-QRCode 跨平台二维码扫描完全指南

HTML5-QRCode 是一个功能强大的跨平台二维码扫描解决方案,专为现代 Web 应用设计。这个轻量级的 JavaScript 库让开发者能够快速集成专业的扫描功能,支持从摄像头实时扫描到本地文件解析的完整需求,为各类应用场景提供完美的二维码识别体验。 ## 为什么选择这个二维码扫描库? 在众多二维码扫描方案中,HTML5-QRCode 凭借其独特优势脱颖而出: **跨平台兼容性** ?

gitblog_00711的博客 1019

HTML5-QRCode 二维码扫描库:现代Web应用的专业解决方案

HTML5-QRCode 是一个基于 HTML5 技术的跨平台二维码和条形码扫描库,专为现代 Web 应用程序设计开发。这个轻量级但功能强大的 JavaScript 库让开发者能够快速集成专业的扫描功能,从简单的二维码识别到复杂的条形码解析,满足各种业务场景需求。 ## 项目核心价值与特色 在当前数字化时代,二维码扫描已成为各类应用的基础功能。HTML5-QRCode 通过纯前端技术实现,无需

gitblog_00638的博客 1015

html5-qrcode扫码功能

本文介绍了H5扫码功能的实现与集成方案,主要内容包括:1)通过npm/pnpm安装html5-qrcode依赖;2)封装可复用的扫码组件,支持二维码/条形码识别、摄像头切换等功能;3)提供核销页面集成示例,包含扫码核销和手动输入两种方式;4)详细说明配置选项、错误处理及性能优化技巧;5)强调HTTPS环境要求及浏览器兼容性问题;6)给出移动端适配建议和完整测试方案。该方案适用于Web端扫码核销场景,支持PC和移动设备,具备良好的错误处理和用户体验。

Bruce__taotao的博客 1666

Html5-QRCode 项目推荐

**Html5-QRCode** 是一个跨平台的 HTML5 QR 码和条形码扫描库,主要使用 JavaScript 编写。该项目旨在为 Web 应用程序提供轻量级、易于集成的 QR 码和条形码扫描功能。通过使用 HTML5 技术,开发者可以快速将这些功能集成到他们的应用中,而无需依赖外部插件或服务。 ## 2. 项目核心功能 - **跨平台支持**:支持 Android、iOS、MacOS、...

gitblog_09529的博客 639

HTML5-QRCode:终极跨平台二维码扫描解决方案

在数字化浪潮席卷各行各业的今天,二维码技术已成为连接线上线下的重要桥梁。HTML5-QRCode作为一个纯JavaScript实现的跨平台二维码扫描库,为Web开发者提供了快速集成专业级扫描功能的完整方案。无论您是构建电商应用、票务系统还是移动支付平台,这个库都能满足您的需求。🚀 ## 为什么选择HTML5-QRCode? ### 全方位兼容性 HTML5-QRCode支持主流浏览器和操作系

gitblog_01053的博客 1149

5分钟掌握Html5-QRCode:终极前端扫码解决方案

还在为网页扫码功能发愁吗?🤔 今天我要介绍的这个**前端扫码神器**——Html5-QRCode,让你在短短5分钟内就能为网站添加强大的二维码和条形码扫描功能! ## 什么是Html5-QRCode? Html5-QRCode是一个轻量级的跨平台JavaScript库,专门用于在HTML5兼容的浏览器中集成二维码、条形码等多种格式的代码扫描功能。这个**前端扫码解决方案**支持几乎所有主流平

gitblog_00660的博客 753
下一篇: 【自用摘录】如何升级Vue的版本 vue2.9.6升级到vue3.0
林希雨
博客等级 码龄4年 84粉丝 13原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值