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

  • 花呗怎么查看消费记录(花呗怎么查看消费明细账单)

    花呗怎么查看消费记录(花呗怎么查看消费明细账单)

  • 微信删除的信息怎么恢复(手机微信删除的信息怎么恢复)

    微信删除的信息怎么恢复(手机微信删除的信息怎么恢复)

  • camtloo华为什么型号(cam-tloo华为手机)

    camtloo华为什么型号(cam-tloo华为手机)

  • 怎样将抖音里的视频删除(怎样将抖音里的表情包转出来)

    怎样将抖音里的视频删除(怎样将抖音里的表情包转出来)

  • 手机恢复大师可以恢复删掉的微信聊天记录吗(手机恢复大师可以恢复聊天记录吗)

    手机恢复大师可以恢复删掉的微信聊天记录吗(手机恢复大师可以恢复聊天记录吗)

  • 新手机号无法注册qq(新手机号无法注册微信怎么办)

    新手机号无法注册qq(新手机号无法注册微信怎么办)

  • 快手里面点关注要钱吗(快手里面关注的人在哪里取消)

    快手里面点关注要钱吗(快手里面关注的人在哪里取消)

  • hdmi线有正反吗(hdmi线方向反了怎么办)

    hdmi线有正反吗(hdmi线方向反了怎么办)

  • 情侣空间点不进去怎么回事(情侣空间点不进去图片)

    情侣空间点不进去怎么回事(情侣空间点不进去图片)

  • 微信只能发信息不能收信息怎么回事(微信只能发信息不能打电话怎么回事)

    微信只能发信息不能收信息怎么回事(微信只能发信息不能打电话怎么回事)

  • oa在计算机应用分类中属于(在计算机应用中,“oa”表示)

    oa在计算机应用分类中属于(在计算机应用中,“oa”表示)

  • iphonex无面容能修吗(iphonex无面容能拍照吗)

    iphonex无面容能修吗(iphonex无面容能拍照吗)

  • 怎么设置微信置顶句子(怎么设置微信置顶折叠)

    怎么设置微信置顶句子(怎么设置微信置顶折叠)

  • 如何将删了的照片恢复(怎样把删除的照片恢复到相册)

    如何将删了的照片恢复(怎样把删除的照片恢复到相册)

  • 虾米音乐的歌词在哪(虾米音乐的歌词转换)

    虾米音乐的歌词在哪(虾米音乐的歌词转换)

  • 拼多多微信登录不了(拼多多微信登录怎么注销账号)

    拼多多微信登录不了(拼多多微信登录怎么注销账号)

  • qq加别人好友对方没收到验证(QQ加别人好友对方知道你的手机号码)

    qq加别人好友对方没收到验证(QQ加别人好友对方知道你的手机号码)

  • 华为测距功能(华为测距仪在哪里?)

    华为测距功能(华为测距仪在哪里?)

  • 手机便签文件在哪(手机便签文件在哪个文件夹)

    手机便签文件在哪(手机便签文件在哪个文件夹)

  • 飞猪旅行如何删除评论(飞猪旅行如何删除乘客)

    飞猪旅行如何删除评论(飞猪旅行如何删除乘客)

  • 开源项目是什么(开源项目一般分为什么和什么)

    开源项目是什么(开源项目一般分为什么和什么)

  • 爱奇艺双屏幕怎么取消(爱奇艺能分屏不)

    爱奇艺双屏幕怎么取消(爱奇艺能分屏不)

  • 升级macOS Catalina没有iTunes如何给手机备份升级刷固件?(升级打装备的手游)

    升级macOS Catalina没有iTunes如何给手机备份升级刷固件?(升级打装备的手游)

  • 解决:code ERESOLVE:ERESOLVE could not resolve 的报错问题(解决的英文)

    解决:code ERESOLVE:ERESOLVE could not resolve 的报错问题(解决的英文)

  • 网站百度统计被恶意刷广告的处理方法(百度统计网址)

    网站百度统计被恶意刷广告的处理方法(百度统计网址)

  • 增值税可以在企业所得税时扣除吗
  • 6个点税如何计算方法
  • 稿酬所得个人所得税税率表
  • 印花税减免优惠政策2020
  • 员工为公司垫付款项
  • 员工加班误餐费怎么做凭证
  • 捐赠的费用放在什么科目
  • 通行费发票勾选认证有多少就可以抵扣多少吗
  • 2019小微企业10万免税需要如何办理
  • 金蝶财务软件固定资产怎样计提折旧
  • 房地产经营税金计算公式
  • 欠款还了一部分怎么写起诉书
  • 生产药酒的厂家
  • 发票开了收不到钱
  • 个人承包集体企业违法吗
  • 劳务公司包工包料的法律法规
  • 减免教育费附加和地方教育费附加账务处理
  • 腾讯手游助手闪屏怎么办
  • php网站架设
  • 收到融资款如何做账
  • 跨年的费用怎么做账
  • 代办营业执照费用大概多少
  • 运输行业增值税税负率是多少
  • php网站结构
  • 购进免税农产品进行进项税额抵扣时,其抵扣率为
  • 填制的凭证内容有哪些
  • yii2 adminlte
  • gpt40
  • 网络安全网络文明
  • node.js的安装和配置
  • 建筑业发票范围
  • 企业账户对私人账户转账多久到账
  • 每个月工资扣的税为什么不一样
  • 印花税没交会怎么样
  • dom事件种类
  • 对c++的认识与体会
  • 子公司能吸收合并吗
  • 无偿受让股权是利好吗
  • 预付款已经开了发票要怎么做账
  • mysql简单操作
  • 出口货物当月销售当月就要开票吗
  • 企业收入总额是营业额吗
  • 购买固定资产的运费计入什么科目
  • 旅行社开具的发票
  • 新会计准则印花税规定
  • 代建项目谁付款
  • 会计凭证保管期限30年是哪一年开始的
  • 避险功能是什么意思
  • 可供分配的利润是什么意思
  • 主营业务成本带二级科目吗
  • 费用票成本票有哪些
  • 营业费用这个科目还在用吗
  • 服务佣金最高可以收多少
  • 什么情况下可以安排待岗
  • 采购自产自销的商品
  • 库存商品销售后怎么做账
  • 错账的更正方法有哪些
  • sql外连接
  • sql中将数据放到另一个表中
  • sql convert函数使用小结
  • 七彩虹主板 csm
  • windows锁定用户
  • win1020th2
  • 找不到config/index taro
  • win10桌面图片预览
  • certutil - decode/encode BASE64/HEX strings.Print symbols by HEX code
  • js中转换成string类型的方法
  • 下列关于android的说法中,错误的是
  • macos mono
  • android 多个权限合并 弹窗
  • Android应用开发实训
  • python中ans
  • 原生javascript
  • 江西省国家税务局电子税务局
  • 国税局事业编制和公务员哪个比较好
  • 企业所得税年度申报表A类
  • 贵州电子税务局app下载
  • 党费减免规定
  • 广西纳税申报流程
  • 汽车票用什么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设