h5的扫一扫功能 (非微信浏览器环境下)

2023-10-19 17:36

本文主要是介绍h5的扫一扫功能 (非微信浏览器环境下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

必须在 https 域名下才生效

<template><div><van-field label="服务商编码" right-icon="scan" placeholder="扫描二维码获取" @click-right-icon="getCameras" />    <div class="scan" :style="{'display':isScan ? 'none' : ''}"><div id="qr-reader" width="400px" height="400px"></div></div>
</template>
<script>
import util from "../common/util.js";
export default {data() {return {cameraId: 0,//相机idisScan:true,};},mounted() {this.init();},// 页面销毁周期关闭相机beforeDestroy() {this.stop();},methods: {init() {util.addJs("https://blog.minhazav.dev/assets/research/html5qrcode/html5-qrcode.min.js");},// 开始扫描getCameras() {Html5Qrcode.getCameras().then(devices => {if(devices){if (devices.length==1) {this.cameraId = devices[0].id;}else{this.cameraId = devices[1].id;}this.start();}}).catch(err => {this.$notify({ type: 'warning', message: '调用摄像头失败 : ' + err});});},// 启动相机start() {this.isScan = false;this.html5QrCode = new Html5Qrcode("qr-reader");this.html5QrCode.start(this.cameraId,{fps: 10,qrbox: { width: 250, height: 250 }},qrCodeMessage => {if (qrCodeMessage) {this.stop();}}).catch(err => {console.log(`Unable to start scanning, error: ${err}`);});},// 关闭相机stop() {this.isScan = true;this.html5QrCode.stop().then(ignore => {console.log("QR Code scanning stopped.");}).catch(err => {console.log("Unable to stop scanning.");});},}
};
</script>
<style lang="less" scoped>.scan{width: 100%;height: 100vh;display: flex;align-items: center;justify-content: center;flex-direction: column;overflow: hidden;}
</style>

util.js文件

const addJs=function (url) {return new Promise((resolve, reject) => {const script = document.createElement('script')script.src = urlscript.type = 'text/javascript'document.body.appendChild(script)script.onload = () => {resolve()}})
}
export default {addJs}

这篇关于h5的扫一扫功能 (非微信浏览器环境下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241319

相关文章

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下