位置: IT常识 - 正文

js实现web页面扫描二维码(html5-qrcode)(html 调用扫码)

编辑:rootadmin
js实现web页面扫描二维码(html5-qrcode)

推荐整理分享js实现web页面扫描二维码(html5-qrcode)(html 调用扫码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js调用扫一扫,js调用扫码,web前端实现扫一扫功能,js调用扫码,js调用微信扫一扫,js调用扫码,js调用扫码,web前端实现扫一扫功能,内容如对您有帮助,希望把文章链接给更多的朋友!

js实现web页面扫描二维码(html5-qrcode)

以vue3项目使用为例 这种还是推荐IOS和安卓原生实现,做桥接文件调用 这种实现方式只支持localhost和https的浏览器网页版 而且经过测试兼容性也不是很好,具体参见官网 下面附了官网链接

js实现web页面扫描二维码(html5-qrcode)(html 调用扫码)

1.下载依赖

npm install html5-qrcode

2.二次封装

<template> <div> <div class="readerDialog" v-show="dialogShow"> <div id="reader" width="600px"></div> </div> </div></template><script>// 调起摄像头扫描二维码import { ref, reactive, toRefs, watch, getCurrentInstance } from 'vue';import { Html5Qrcode } from 'html5-qrcode';export default { name: 'Qrcode', props: [], emits: ['success'], setup (props, { emit }) { const params = reactive({ dialogShow: false, codeUrl: '', cameraId: '', showText: '', devices: [], getCamerasText: '', html5QrCode: null }); // 外部调用此方法打开 const open = () => { params.dialogShow = true; console.log('params.dialogShow', params.dialogShow); getCameras(); }; const getCameras = () => { params.getCamerasText = JSON.stringify(Html5Qrcode.getCameras()); Html5Qrcode.getCameras() .then((devices) => { params.showText = JSON.stringify(devices); /** * devices would be an array of objects of type: * { id: "id", label: "label" } */ if (devices && devices.length) { // 如果有2个摄像头,1为前置的 if (devices.length > 1) { params.cameraId = devices[1].id; } else { params.cameraId = devices[0].id; } params.devices = devices; start(); // .. use this to start scanning. } }) .catch((err) => { params.showText = err; console.log('getCameras err:', err); // 获取设备信息失败 }); }; const start = () => { params.html5QrCode = new Html5Qrcode('reader'); params.html5QrCode.start( params.cameraId, // retreived in the previous step. { fps: 10, // sets the framerate to 10 frame per second qrbox: { width: 250, height: 250 }, // sets only 250 X 250 region of viewfinder to // scannable, rest shaded. }, (decodedText, decodedResult) => { // do something when code is read. For example: // if (qrCodeMessage) { // this.getCode(qrCodeMessage); // this.stop(); // } console.log('===成功日志:', decodedText); console.log(typeof decodedResult, decodedResult); emit('success', decodedText); stop(); params.dialogShow = false; }, (errorMessage) => { // parse error, ideally ignore it. For example: // console.log(`QR Code no longer in front of camera.`); console.log('非扫描成功日志:', errorMessage); } ) .catch((err) => { // Start failed, handle it. For example, console.log(`Unable to start scanning, error: ${err}`); }); }; const stop = () => { params.html5QrCode .stop() .then((ignore) => { // QR Code scanning is stopped. console.log('QR Code scanning stopped.'); }) .catch((err) => { // Stop failed, handle it. console.log('Unable to stop scanning.'); }); }; return { ...toRefs(params), getCameras, open }; },};</script><style lang="scss" scoped>.readerDialog { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 999999; background: #333; #reader { top: 25%; }}</style>

3.使用(以下只演示部分核心代码)

html部分

<van-button type="success" @click="cameraClick">开始扫描</van-button><Qrcode ref="QrcodeRef" @success="qrcodeSuccess" />

js部分

import Qrcode from '@/components/Qrcode/index.vue';const QrcodeRef = ref();const qrcodeText = ref('');// 扫描调起const cameraClick = () => { QrcodeRef.value.open();};// 扫描成功回调const qrcodeSuccess = (txt) => { qrcodeText.value = txt;};

官网:https://github.com/mebjas/html5-qrcode

本文链接地址:https://www.jiuchutong.com/zhishi/283334.html 转载请保留说明!

上一篇:一体机、笔记本、品牌机、组装机各自的优缺点(一体机笔记本电脑)

下一篇:修改iframe内部元素的样式(iframe更改自身src)

  • windows powershell和命令提示符一样吗(windows powershell和运行有什么区别吗?)

    windows powershell和命令提示符一样吗(windows powershell和运行有什么区别吗?)

  • 华为荣耀9xpro有没有录屏功能(荣耀9xpro使用说明)

    华为荣耀9xpro有没有录屏功能(荣耀9xpro使用说明)

  • mate30是鸿蒙系统吗

    mate30是鸿蒙系统吗

  • 佳能打印机密码在哪里(佳能打印机密码无线连接密码忘记了)

    佳能打印机密码在哪里(佳能打印机密码无线连接密码忘记了)

  • 苹果官换机在哪里购买(苹果官换机在哪买)

    苹果官换机在哪里购买(苹果官换机在哪买)

  • 手机qq表情包加载不出来怎么办(手机qq表情包加载失败)

    手机qq表情包加载不出来怎么办(手机qq表情包加载失败)

  • 荣耀是什么牌子的手机(荣耀是什么牌子旗下的)

    荣耀是什么牌子的手机(荣耀是什么牌子旗下的)

  • 计算机的硬件系统包括(计算机的硬件系统主要包括运算器储存器)

    计算机的硬件系统包括(计算机的硬件系统主要包括运算器储存器)

  • dub-aloo是什么型号(due-aloo是什么型号)

    dub-aloo是什么型号(due-aloo是什么型号)

  • 快手直播视频用什么软件(快手直播视频用什么软件下载)

    快手直播视频用什么软件(快手直播视频用什么软件下载)

  • 网上充电费多久来电(网上充电费多久到)

    网上充电费多久来电(网上充电费多久到)

  • 苹果11promax怎么录屏(苹果11promax怎么分屏两用)

    苹果11promax怎么录屏(苹果11promax怎么分屏两用)

  • amd2600能不能装win7(amd2600e)

    amd2600能不能装win7(amd2600e)

  • 抖音认证什么意思(抖音认证是怎么回事)

    抖音认证什么意思(抖音认证是怎么回事)

  • 有交换机还要路由器吗(有交换机还需要路由器吗)

    有交换机还要路由器吗(有交换机还需要路由器吗)

  • 128mb是多大内存是几g(128mb有多大)

    128mb是多大内存是几g(128mb有多大)

  • xs与x的区别(xs和x是一样的吗)

    xs与x的区别(xs和x是一样的吗)

  • 华为mate30支持指纹解锁吗(华为mate30支持指纹支付吗)

    华为mate30支持指纹解锁吗(华为mate30支持指纹支付吗)

  • 怎么查看手机碎屏险(怎么看手机碎屏)

    怎么查看手机碎屏险(怎么看手机碎屏)

  •  电话被拉黑能发信息吗(电话被拉黑能发短信吗)

    电话被拉黑能发信息吗(电话被拉黑能发短信吗)

  • 苹果x能刷回出厂系统吗(苹果x刷回原来的系统)

    苹果x能刷回出厂系统吗(苹果x刷回原来的系统)

  • 华为如何关闭最近删除(华为如何关闭最左边的页面)

    华为如何关闭最近删除(华为如何关闭最左边的页面)

  • 怎样恢复手机照相机(怎样恢复手机照片视频)

    怎样恢复手机照相机(怎样恢复手机照片视频)

  • 三星a60上市时间(三星a60上市时间价格)

    三星a60上市时间(三星a60上市时间价格)

  • 夏普电视无线投屏在哪打开(夏普电视无线投屏怎么用)

    夏普电视无线投屏在哪打开(夏普电视无线投屏怎么用)

  • Win11硬盘如何开启密钥保护 Win11硬盘开启密钥保护的方法(win11怎么打开磁盘管理)

    Win11硬盘如何开启密钥保护 Win11硬盘开启密钥保护的方法(win11怎么打开磁盘管理)

  • nologin命令  限制用户登录(nor命令)

    nologin命令 限制用户登录(nor命令)

  • 新办企业购置设备怎么抵税
  • 增值税税率是怎么规定的
  • 继续教育报名发什么文件
  • 政府的慰问金一般有多少钱
  • 个人补缴的医保要做账吗
  • 应付账款现金流量表指定
  • 固定资产十几万可以直接入费用吗
  • 持有待售的固定资产减值可以转回吗
  • 企业多缴纳所得税怎么办
  • 为什么有的公司没有一金
  • 增值税普通发票几个点
  • 年末如何计提企税分录
  • 制造型企业采购
  • 劳务费代驾计入什么科目?
  • 我们4月10日
  • 哪些出口业务不能做
  • 发票上折扣怎么记账
  • 所得税计税方法
  • 停车管理费什么时候交
  • 本年利润期末
  • win10系统如何在游戏中禁用输入法
  • 特殊收入应扣减可加计扣除的研发费用政策依据
  • 被收购企业会提出什么条件
  • msmpeng.exe 是什么
  • PHP:curl_share_setopt()的用法_cURL函数
  • 企业年金基金缴费必须归集到受托财产托管账户
  • 印花税会计分录2023
  • 企业租地建厂流程
  • 医院装修设计费用取费标准表
  • 注册资本和投资总额的关系
  • 往境外支付培训费怎么退
  • 违约金开什么票据
  • 发生广告费的会计分录
  • vue获取value值
  • 计算机视觉基础知识
  • 信托保障基金怎么赎回
  • 企业补助怎么做会计分录
  • php swoole 协程
  • mongodb的安装配置
  • 汇算清缴的费用标准 中汇
  • sqlserver存储过程if语句
  • mysql存储引擎有哪些区别
  • 工会经费和残保金计入什么科目
  • 成本发票未到如何结转成本
  • 所得税为负数会计分录
  • 损益类科目如何记忆
  • 进项税转出的金额是什么
  • 4s店收到红字发票怎么开
  • 个体工商户纳税申抿
  • 建筑业当月有收入,没成本怎样办
  • 印花税征税范围2021
  • mysql1194
  • 分配服务器失败
  • 海量数据存储和查询
  • win10收不到短信验证码
  • 苹果mac最新的系统
  • 虚拟光驱安装
  • WFXSVC.EXE - WFXSVC是什么进程
  • xp系统java环境变量配置
  • macbookpro如何开启查找我的mac
  • win8开机进入开始界面
  • linux中vi命令详解
  • windowsserver2008修改远程端口
  • win10系统无法安装到gpt分区
  • 如何刷硬盘使用时间
  • javascript详解
  • Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
  • Interlnk、Intersvr、Qbasic命令的使用方法
  • c#在unity的作用
  • linux shell终端
  • js indexof undefined
  • vue.js有什么用
  • json jquery
  • 天津电子税务局ca证书
  • 高新技术企业认定
  • 东城国税局局长
  • 房产税纳税义务时间
  • 广东房产契税电话查询
  • 目前长沙二手房出售信息
  • 美国海外公司每年利润
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设