html5-qrcode 实现扫码

基本步骤跟这里是一样的,H5项目实现扫描二维码功能 -- html5-qrcode_html扫码功能_浮桥的博客-CSDN博客

在这里主要记录一下使用中的问题 ,这个插件的使用只有在手机自带浏览器中可以,若是换成其他浏览器比如UC

function scanQRCode() {
  if(typeof ucweb != 'undefined' && typeof ucweb.startScanQRCode == 'function') {
    ucweb.startScanQRCode(function(result) {
      alert(result);
    });
  } else {
    alert('请在UC浏览器中打开该页面!');
  }
}

浏览器是自带扫一扫功能的所以在不同浏览器可能方法不同,使用自带的没有进行 深入研究。

 使用中发现

const getCameras = () => {
    Html5Qrcode.getCameras()
        .then((devices) => {
            console.log('摄像头信息', devices);
            if (devices && devices.length) {
            }
        })
        .catch((err) => {
            // handle err
            console.log('获取设备信息失败', err); // 获取设备信息失败
        });
};

这部分代码是获取设备相机数量 以及开启的是前置还是后置 但是在使用的时候已经设定为后置了,觉得这部分的获取就有点多此一举。

     { facingMode: "environment" }, // retreived in the previous step.

这个组件只对纸质二维码且要求二维码不能太小,经测在金属板且反光的材质上,识别精度需要调整到合适的角度,最后无奈放弃转而使用video+canvas 一屏截取二维码传给后端解析 提高识别率

简单的人脸识别(video+canvas)_月鸟飞阿达的博客-CSDN博客

使用H5code  新发现 解决了当前的困难,发现了一些新的参数使用特来补充一下

 start(
            {
                facingMode: "environment",
            }, // retreived in the previous step.
            {
                fps: 3, // 设置每秒多少帧
                qrbox: { width: 250, height: 250 },
                tryHarder: true,
                videoConstraints: {   //提高输入视频的分辨率
                    width: { ideal: 1920 },
                    height: { ideal: 1080 },
                    facingMode: 'environment',//必须保持一致不然会变为前置摄像头
                },
                autofocus:true,  //自动对焦  但使用的时候没有体会到
                colorDark: '#0000ff',  //加深二维码黑色部分的颜色提高识别度
                colorLight: '#ffffff',//这个应该是提高非黑即白部分的亮度  提高识别度
                visualFeedback:true, //开启视觉反馈  没有体会到
                halfSample:true,//缩小二维码提高识别精度吧  
                // scannable, rest shaded.
            },

 在使用过程中发现是有很多新的参数的,但是总是使用的时候白屏打不开现在这些参数都是亲测有用的,公司的二维码不是白底黑字的,是激光打印到金属板上的,导致扫码发光很是严重,再添加了上述参数后,识别率大大提高,特此分享一下,本地联调也是可以的,

使用的是vite ,在下面加这个就变成https 了,就可以在手机上联调了,vue.config。好像也是这么加的。 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值