位置: 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)

  • 怎么在电脑上下载谷歌浏览器(怎么在电脑上下歌到u盘)

    怎么在电脑上下载谷歌浏览器(怎么在电脑上下歌到u盘)

  • 手机屏幕跟边框脱胶了(手机屏幕跟边框脱胶了影响使用吗)

    手机屏幕跟边框脱胶了(手机屏幕跟边框脱胶了影响使用吗)

  • oppo手机怎么改图标名字(oppo手机怎么改图标图片)

    oppo手机怎么改图标名字(oppo手机怎么改图标图片)

  • def代码什么意思(def.diva)

    def代码什么意思(def.diva)

  • 安装打印机驱动usb连接不上(安装打印机驱动找不到设备)

    安装打印机驱动usb连接不上(安装打印机驱动找不到设备)

  • 苹果se电池耐用吗(iphone se电池续航怎么样)

    苹果se电池耐用吗(iphone se电池续航怎么样)

  • 华为荣耀怎么截屏(华为荣耀怎么截屏的4种方法)

    华为荣耀怎么截屏(华为荣耀怎么截屏的4种方法)

  • qq发说说怎么@别人(qq发说说怎么别人空间不显示了)

    qq发说说怎么@别人(qq发说说怎么别人空间不显示了)

  • 苹果手机来电自动接听怎么回事(苹果手机来电自动免提怎么关掉)

    苹果手机来电自动接听怎么回事(苹果手机来电自动免提怎么关掉)

  • wps审阅模式怎么开(wps审阅模式怎么批注)

    wps审阅模式怎么开(wps审阅模式怎么批注)

  • 表示媒体的是什么(表示媒体有哪些类型)

    表示媒体的是什么(表示媒体有哪些类型)

  • 为什么抢不了红包(为什么抢不了红包和福袋)

    为什么抢不了红包(为什么抢不了红包和福袋)

  • 电脑硬盘内存是指什么(电脑硬盘内存是245g够放炫舞吗)

    电脑硬盘内存是指什么(电脑硬盘内存是245g够放炫舞吗)

  • vivoy3能不能无线充电(vivoy3的无线显示在哪)

    vivoy3能不能无线充电(vivoy3的无线显示在哪)

  • 打印机如何扫描至电脑(打印机如何扫描到电脑里面)

    打印机如何扫描至电脑(打印机如何扫描到电脑里面)

  • 淘宝怎么开店(淘宝怎么开店铺卖货)

    淘宝怎么开店(淘宝怎么开店铺卖货)

  • 课程格子怎么改时间(课程格子怎么导入课表)

    课程格子怎么改时间(课程格子怎么导入课表)

  • qq标签为什么自己变了(qq标签总是出其他的标签)

    qq标签为什么自己变了(qq标签总是出其他的标签)

  • iphone自带钢琴在哪(苹果手机自带钢琴是哪个软件)

    iphone自带钢琴在哪(苹果手机自带钢琴是哪个软件)

  • 打对方电话无任何声音(打对方电话无任何声音是被拉黑了吗)

    打对方电话无任何声音(打对方电话无任何声音是被拉黑了吗)

  • 新手开淘宝店的具体步骤(新手开淘宝店的流程)

    新手开淘宝店的具体步骤(新手开淘宝店的流程)

  • 荣耀20pro防水吗(华为荣耀20pro防水吗手机防水吗)

    荣耀20pro防水吗(华为荣耀20pro防水吗手机防水吗)

  • word水平居中(word水平居中对齐)

    word水平居中(word水平居中对齐)

  • 三星g8750是什么型号(g8750是三星s几)

    三星g8750是什么型号(g8750是三星s几)

  • js是什么意思(json是什么意思)

    js是什么意思(json是什么意思)

  • 该设备正在使用中(该设备正在使用中怎么关闭u盘)

    该设备正在使用中(该设备正在使用中怎么关闭u盘)

  • 发财树怎么修剪枝叶——让你的发财树与从不同(发财树怎么修剪枝叶视频教程)

    发财树怎么修剪枝叶——让你的发财树与从不同(发财树怎么修剪枝叶视频教程)

  • 没有收入可以不给抚养费吗
  • 一般纳税人增值税会计账务处理
  • 增值税普通发票需要交税吗
  • 工商股权转让费用怎么算
  • 承兑汇票可以随便给人看吗
  • 变更税务法人需要怎么办
  • 财务报表怎么重新做
  • 购买信息技术服务费摘要怎么写
  • 增值发票盖章有什么用
  • 直接支付和授权支付方式的区别与联系
  • 无法上报季度财务报告
  • 有形动产租赁简易征收适用哪些业务
  • 预计退货的会计分录 东奥
  • 商贸公司结转成本应该贴什么凭证
  • 当月发票已认证还能作废吗
  • 提前退休获得一次性补贴要交个人所得税吗?
  • 空白发票作废后验旧显示不了
  • 调用核心征管业务服务节点报错
  • 房租发票9%还是5%
  • 借款利息开什么票
  • 营养成分表的计算表
  • 专用发票没有写购买方电话号码
  • 预缴企业所得税是含税数还是不含税
  • 工商注销债务承担
  • 购买商品接受劳务的现金流包括哪些
  • 金税卡服务费抵扣政策
  • 金税盘可以抵扣进项税吗
  • 建筑劳务公司计提人工劳务费需要工资表吗?
  • elementui常用组件
  • 制造费用结转到主营业务成本
  • 进入苹果icloud
  • 当月认证抵扣的进项税发票一定要入帐做成本吗?
  • 一公顷等于多少千米
  • PHP:mdecrypt_generic()的用法_Mcrypt函数
  • php数据类型分为哪几类
  • wordpress portfolio
  • 购买房屋缴纳的税款
  • vue vif
  • php 封装
  • uniapp 手写识别
  • vue中的echarts
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法
  • vue加载时如何避免出现代码
  • 公司开具了电子发票
  • linux服务器环境搭建
  • mongodb管道操作符
  • 实际发生坏账损失不影响应收账款
  • 交通费中的高速费指什么
  • 公司借款方式
  • 计提生产经营所得
  • 增值税进项税额加计抵减政策
  • 银行汇票转入银行分录
  • 部门召开会议
  • 企业成本核算项目以及成本核算流程
  • 工程预付款发票开什么明细项目
  • 从工程款中扣除质保金
  • 计提员工工资是什么意思
  • 跟老师出差路上可以聊些什么
  • 制造费用影响什么
  • 现销方式
  • 美国支票上的收款人地址不对怎么办
  • 公司委托公司收款范本
  • mysql的行转列
  • win7users移动其它盘
  • windows server 2008 r2激活密钥
  • win10手机预览版
  • xp系统设置壁纸
  • linux extundelete
  • centos查看目录空间大小
  • xp系统操作全程图解
  • macbook显示flash插件故障
  • 在centos7中,一般用( )命令来查看网络接口的状态
  • linux中的shell编程
  • unity如何成一组
  • node ffi
  • python数组定义方法
  • 告诉你什么是无限的恐怖日语
  • 成都市地方税务局 组织税收收入 2010
  • 社保申报每月几号申报
  • 跨区域涉税事项报告表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设