vue3移动端调用手机摄像头实现扫描二维码功能
-
需求:
vue3+vant4 实现移动端网页调用手机摄像头实现扫描二维码,并返回二维码附带信息功能 -
效果图:
-
实现方法
采用vue3-qr-reader插件实现项目安装依赖:
npm install --save vue3-qr-reader
页面引入:
import { QrStream } from 'vue3-qr-reader'; export default defineComponent({ components: { QrStream } })
页面使用:
<qr-stream @decode="onDecode" class="container"> <!--扫码识别框的颜色样式--> <div style="color: red;" class="contentInner"></div> </qr-stream>
完整代码示例:
<template> <div class="demo"> <van-nav-bar title="扫一扫" left-text="返回" left-arrow @click-left="onClickLeft" style="background-color: #081c33" /> <div class="content"> <qr-stream @decode="onDecode" class="container"> <div style="color: red;" class="contentInner"></div> </qr-stream> <div class="bottomLight"> <img src="@/assets/img/my/light.png" style="width:30px" /> <p>轻触照亮</p> </div> </div> </div> </template> <script lang="ts"> import { defineComponent, ref, Ref, reactive, toRefs } from 'vue' import { QrStream} from 'vue3-qr-reader'; export default defineComponent({ name: 'Qrcode', components: { QrStream }, setup() { const onClickLeft = () => history.back(); const onDecode = (data: any) => { console.log(data);//二维码附带信息 } return { onDecode, onClickLeft, } } }) </script>