一款依赖可以直接调用摄像头扫码,vue-qrcode-reader。分别提供QrcodeStream、QrcodeDropZone、QrcodeCapture用来识别二维码。
npm install vue-qrcode-reader
<script setup>
import { onMounted, reactive, ref } from 'vue';
import { QrStream } from 'vue3-qr-reader';
let onDecode = (e) => {
console.log('e',e);
alert(e)
}
let onInit = () => {
alert('初始话完成')
}
onMounted(() => {
})
</script>
<template>
<div>
<p>{{ tipMsg }}</p>
<QrStream @decode="onDecode" @init="onInit"></QrStream>
</div>
</template>
<style lang="scss" scoped>
</style>
ios效果
安卓效果
因为浏览器原因,调用摄像头等权限需要本地或者https
::
在开发过程中,有时候需要用到一些音视频接口等需要https才能拿到权限,为方便开发过程中调试,这里就介绍几种vite项目快速开启https访问的方式。vite配置项说明文档:[开发服务器选项 | Vite 官方中文文档](https://cn.vitejs.dev/config/server-options.html rel= "开发服务器选项 | Vite 官方中文文档")
这个插件仓库地址:https://github.com/vitejs/vite-plugin-basic-ssl
安装依赖@vitejs/plugin-basic-ssl:
pnpm i @vitejs/plugin-basic-ssl
然后配置到vite中:
import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import path from 'path'import basicSsl from '@vitejs/plugin-basic-ssl' // https://vitejs.dev/config/export default defineConfig({ plugins: [vue(), basicSsl()], server: { host: '0.0.0.0', https: true }, resolve: { alias: { '@': path.resolve(__dirname, 'src') } }})
最后重启服务器:
但是这种方式会让浏览器提示不安全:
安装vite-plugin-mkcert插件,然后配置到项目中:
pnpm add vite-plugin-mkcert -D
然后配置到vite.config.ts中:
//2.在vite.config.js里面引入import mkcert from "vite-plugin-mkcert"; export default defineConfig({ server: { https: true // 需要开启https服务 }, plugins: [mkcert()]})
使用教程可以看我的文章:https://xiaoshen.blog.csdn.net/article/details/135893188
因为这种浏览器不会报错误提示:
文章标题:vue3,扫码器--vue-qrcode-reader
文章作者:未知用户
文章链接:[复制]
最后修改时间:2024年 04月 15日 19时17分
商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。 本文采用CC BY-NC-SA 4.0进行许可。
Copyright © 2023--2025
豫ICP备2022014268号-1
我们历经沧桑,这样错过了一生最好的时光,错过了便是永远