前端知识框架 前端知识框架
首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档

BestIdea

首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档
  • 国产机环境浏览器兼容问题收集(持续收集)
  • canvas电子画板,适用于H5版本,组件产出为blob类型的文件流
  • Css3 filter(滤镜) 属性
  • css选择器
  • http缓存
  • less语法
  • New date()浏览器时间兼容性
  • rem自动适应性布局方案
  • 浏览器缓存机制
  • 屏幕适配
  • 前端基础方法汇总
  • 图片转码下载方式(解决浏览器下载图片时直接打开图片问题)
  • CSS命名规范
  • 大屏定位解决方案
  • TypeScript入门
  • 解决有些浏览器rem不以html的font-size为基准问题
  • 解决Vue项目页面缩放问题
  • H5扫一扫功能
    • 实现方案
    • 使用方式
  • crypto前端加密
  • 基础
郝东建
2023-12-12
目录

H5扫一扫功能

# 实现方案

  • 1.使用 html5-qrcode(对二维码的精度要求较高,胜在使用比较方便,公司用的是 vue2,因此最终采用此方案)
  • 2.使用 vue-qrcode-reader(对 vue 版本和 node 有一定要求,推荐 vue3 使用,这里就不展开说了)

# 使用方式

设置isScanning属性为true,即可打开扫码功能

<!-- html结构 -->
<view class="reader-box" v-if="isScaning">
 <view class="reader" id="reader"></view>
</view>

1
2
3
4
5
import { Html5Qrcode } from 'html5-qrcode';
openQrcode() {
  this.isScaning = true;
  Html5Qrcode.getCameras().then((devices) => {
  if (devices && devices.length) {
  this.html5Qrcode = new Html5Qrcode('reader');
  this.html5Qrcode.start(
      {
      facingMode: 'environment'
      },
      {
      focusMode: 'continuous', //设置连续聚焦模式
      fps: 5,       //设置扫码识别速度
      qrbox: 280   //设置二维码扫描框大小
      },
      (decodeText, decodeResult) => {
        if (decodeText) { //这里decodeText就是通过扫描二维码得到的内容
          console.log(decodeText)  //对二维码逻辑处理
          this.stopScan(); //关闭扫码功能
      }
    },
    (err) => {
        // console.log(err);  //错误信息
      }
     );
    }
  });
},

stopScan() {
 console.log('停止扫码')
 this.isScaning = false;
 if(this.html5Qrcode){
    this.html5Qrcode.stop();
 }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
上次更新: 2024/01/19, 09:00:06
解决Vue项目页面缩放问题
crypto前端加密

← 解决Vue项目页面缩放问题 crypto前端加密→

最近更新
01
webpack打包替换类名命名空间
05-01
02
Vite常用配置
02-26
03
crypto前端加密
01-18
更多文章>
Theme by Vdoing | Copyright © 2022-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式