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

  • 联想笔记本怎么打开摄像头(联想笔记本怎么关机)

    联想笔记本怎么打开摄像头(联想笔记本怎么关机)

  • qq网络状态怎么设置(qq网络状态怎么隐藏)

    qq网络状态怎么设置(qq网络状态怎么隐藏)

  • 微信怎么小窗私聊(微信小窗私聊怎么设置)

    微信怎么小窗私聊(微信小窗私聊怎么设置)

  • 华为mate30悬浮球功能怎么设置(华为mate30悬浮球怎么取消)

    华为mate30悬浮球功能怎么设置(华为mate30悬浮球怎么取消)

  • 两个excel表格筛选出不同的内容怎么弄(两个excel表格筛选出不同的内容)

    两个excel表格筛选出不同的内容怎么弄(两个excel表格筛选出不同的内容)

  • oppor11什么时候上市(oppor11什么时候停产的)

    oppor11什么时候上市(oppor11什么时候停产的)

  • 苹果6音量突然变成耳机模式怎么办(苹果音量突然变大)

    苹果6音量突然变成耳机模式怎么办(苹果音量突然变大)

  • qq显示3g在线有几种可能(qq显示3g在线是什么情况)

    qq显示3g在线有几种可能(qq显示3g在线是什么情况)

  • 麦克风和耳机唱歌区别(麦克风和耳机唱歌一样吗)

    麦克风和耳机唱歌区别(麦克风和耳机唱歌一样吗)

  • 电子书包是什么东西(电子书包是什么样子的)

    电子书包是什么东西(电子书包是什么样子的)

  • 删除备份有什么影响吗(删除备份还能恢复吗)

    删除备份有什么影响吗(删除备份还能恢复吗)

  • 手机上可以下载电脑系统吗(手机上可以下载歌曲到u盘吗)

    手机上可以下载电脑系统吗(手机上可以下载歌曲到u盘吗)

  • 淘宝wap流量加权重吗(淘宝wap流量有效果吗)

    淘宝wap流量加权重吗(淘宝wap流量有效果吗)

  • 程序设计是指设计调试程序的(程序设计应该属于( ))

    程序设计是指设计调试程序的(程序设计应该属于( ))

  • int的取值范围怎么算(int的取值范围怎么求)

    int的取值范围怎么算(int的取值范围怎么求)

  • iphone11应用加密怎么设置(苹果11应用加密码)

    iphone11应用加密怎么设置(苹果11应用加密码)

  • 密码不能包含空格是什么意思(什么叫密码不能包含空格)

    密码不能包含空格是什么意思(什么叫密码不能包含空格)

  • 华为gt2手表怎么打电话(华为gt2手表怎么设置间歇跑)

    华为gt2手表怎么打电话(华为gt2手表怎么设置间歇跑)

  • 剪映怎么使用自己的音乐(剪映怎么使用自己下载的音乐)

    剪映怎么使用自己的音乐(剪映怎么使用自己下载的音乐)

  • qq被暂时封了多久解除(qq被暂时封号要多久)

    qq被暂时封了多久解除(qq被暂时封号要多久)

  • wrz耳机是什么品牌(wrz耳机百度百科)

    wrz耳机是什么品牌(wrz耳机百度百科)

  • 知乎怎么保存视频(知乎怎么保存视频到手机)

    知乎怎么保存视频(知乎怎么保存视频到手机)

  • 无线话筒怎么调频配对音箱(无线话筒怎么调频率数字)

    无线话筒怎么调频配对音箱(无线话筒怎么调频率数字)

  • echarts的series——折线图,饼图,柱状图,散点图的配置(echarts series name)

    echarts的series——折线图,饼图,柱状图,散点图的配置(echarts series name)

  • 职工福利费会计凭证
  • 税控盘抄报逾期怎么办
  • 开具电费发票如何入账?
  • 专票打印偏下可以用吗
  • 林业一般纳税人的税率是多少?
  • 单位结算卡和公账是一张卡吗
  • 建筑 分包
  • 单位部分承担个人借款利息个税的计算
  • 广告合同印花税率怎么算
  • 会计录入凭证怎么录入
  • 待处理产品损益账户的核算内容不包括
  • 去年的库存
  • 医院其他收入包括哪些项目
  • 装修公司开发票需要客户承担税点吗?
  • 餐费适用税率
  • 银行卡刷卡消费限额
  • 会计中包装物计入
  • 新公司开业的祝福语
  • 个税验证不通过怎么办
  • 无形资产软件摊销年限是多少
  • 进项税转出的会计处理
  • 收入和成本都是真实发生的但是不匹配
  • 投入资本公积需要结转吗
  • 出租房屋收的押金合法吗
  • ca证书延期不了
  • 计提其他应收款坏账
  • 付货款时从货款中扣除的返利怎样做账?
  • win10自带播放器不见了
  • mac怎么打印文件内容
  • Linux中samba服务区怎么创建多个用户
  • 银行余额调节表例题和答案
  • 外包公司代缴的税怎么算
  • ubuntu系统u盘安装
  • php在apache中有哪些工作方式
  • schupd.exe - schupd是什么进程 有什么用
  • 库存商品的主要类型
  • PHP:class_implements()的用法_spl函数
  • 增值税留抵退税账务处理
  • 前端大屏适配几寸显示器
  • 公司投资款无法收回
  • vue3封装axios
  • php guzzle 异步
  • axios和ajax的关系
  • Windows7配置启用ca证书
  • 管家婆软件如何做账
  • 物流公司修理班的管理有那些书
  • 企业官网用什么系统
  • 计提怎么理解
  • 增值税发票扩版申请说明
  • 固定资产进项留存怎么算
  • 农村合作社怎么办理流程
  • 物业电费加价如何处理
  • 多计提的工资怎么冲销
  • 开出银行承兑汇票
  • 已经认证抵扣的发票,要退回,怎么处理
  • 特殊销售方式下销售额的确定
  • 提供劳务收入的确认条件
  • 投标保证金支付给谁
  • 暂估费用票的账务处理
  • 预包装食品加工及销售营业执照图片
  • 公司折旧怎么算
  • 数据库left joins
  • VMWare linux mysql 5.7.13安装配置教程
  • ubuntu从u盘安装软件
  • 虚拟机增加磁盘选择物理磁盘分区
  • windows 批处理
  • ubuntu终端终止正在执行的命令
  • windows自带搜索引擎
  • vi编辑器是干什么的
  • mac设置在哪里设置
  • 环境搭建怎么写
  • 向量上面有个倒着的v
  • opengl(mesa) for ubuntu14.04
  • Node.js中的事件循环是什么
  • Unity3d MonoDevelop格式化代码
  • vue购物车功能
  • jquery分页插件的使用
  • jqueryapi手机版
  • 请问各位专家金线吊乌龟有什么功效
  • 车辆整备质量怎么填
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设