VUE html5-qrcode H5扫一扫功能

这篇具有很好参考价值的文章主要介绍了VUE html5-qrcode H5扫一扫功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官方文档  html5-qrcode

安装   npm i html5-qrcode

1、新建一个组件 

	<div class="qrcode">
		<div id="reader"></div>
	</div>
//样式
.qrcode{
		    position: relative;
			height: 100%;
			width: 100%;
		  	background: rgba($color: #000000, $alpha: 0.48);
}

#reader{
		  top: 50%;
		  left: 0;
		  transform: translateY(-50%);
}

2、引入

	import { Html5Qrcode } from "html5-qrcode";

3、获取摄像权限在created调用

getCameras() {
			      Html5Qrcode.getCameras()
			        .then((devices) => {
			          if (devices && devices.length) {
						this.html5QrCode = new Html5Qrcode("reader");
			            this.start();//扫码
			          }
			        })
			        .catch((err) => {
			          // handle err
					  this.html5QrCode = new Html5Qrcode("reader");
					  this.error = "ERROR: 您需要授予相机访问权限"
					  this.$emit("err",this.error)
			        });
},

4、获取扫码内容

start() {
			      //environment后置 user前置
			      this.html5QrCode 
			        .start(
			           {facingMode: "environment" },
			          {
			            fps: 2,//500毫秒扫描一次
			            qrbox: { width: 250, height: 250 }, 
			          },
			          (decodedText, decodedResult) => {
						  this.$emit("ok",decodedText)
			          }
			        )
			        .catch((err) => {
			          console.log(`Unable to start scanning, error: ${err}`);
			        });
},

5、必须在销毁页面前关闭扫码功能否则会报错  could not start video source

//销毁前调用
beforeDestroy() {
		    this.stop();
}

//关闭扫码
stop() {
			      this.html5QrCode.stop().then((ignore) => {
			          // QR Code scanning is stopped.
			          console.log("QR Code scanning stopped.");
			        })
			        .catch((err) => {
			          // Stop failed, handle it.
			          console.log("Unable to stop scanning.");
			        });
},

6、在扫码页面引用组件

<BarScan ref="qrcode" @ok="getResult" @err="geterror" ></BarScan>

getResult(e){
    //e:扫码内容
}

geterror(e){
    //e:报错内容
}

组件完整代码

<template>
    <div class="qrcode">
		<div id="reader"></div>
    </div>
</template>

<script>
	import { Html5Qrcode } from "html5-qrcode";
	export default {
		created() {
			this.getCameras()
		},
		beforeDestroy() {
		    this.stop();
		},
		methods:{
			getCameras() {
			      Html5Qrcode.getCameras()
			        .then((devices) => {
			          if (devices && devices.length) {
						this.html5QrCode = new Html5Qrcode("reader");
			            this.start();
			          }
			        })
			        .catch((err) => {
			          // handle err
					  this.html5QrCode = new Html5Qrcode("reader");
					  this.error = "ERROR: 您需要授予相机访问权限"
					  this.$emit("err",this.error)
			        });
			    },
			 start() {
			      //environment后置 user前置
			      this.html5QrCode 
			        .start(
			           {facingMode: "environment" },
			          {
			            fps: 2,
			            qrbox: { width: 250, height: 250 }, 
			          },
			          (decodedText, decodedResult) => {
						  this.$emit("ok",decodedText)
			          }
			        )
			        .catch((err) => {
			            this.$emit("err",err)
			        });
			    },
			    stop() {
			      this.html5QrCode.stop().then((ignore) => {
			          // QR Code scanning is stopped.
			          console.log("QR Code scanning stopped.");
			        })
			        .catch((err) => {
			          // Stop failed, handle it.
			          console.log("Unable to stop scanning.");
			        });
			    },
		}
	}
</script>

<style lang="scss" scoped>
	.qrcode{
		    position: relative;
			height: 100%;
			width: 100%;
		  	background: rgba($color: #000000, $alpha: 0.48);
	}
	#reader{
		  top: 50%;
		  left: 0;
		  transform: translateY(-50%);
	}
</style>

引用组件页面文章来源地址https://www.toymoban.com/news/detail-579994.html

<BarScan ref="qrcode" @ok="getResult" @err="geterror" ></BarScan>

import BarScan from '@/components/qrcode.vue'
	var _self;
	export default {
		components:{
			BarScan
		},
        methods:{
            getResult(result){
			      this.result=result;
			},
			geterror(e){
				  this.$toast(e)
			},}
}

到了这里,关于VUE html5-qrcode H5扫一扫功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序通过扫一扫调用H5项目

    业务逻辑: 小程序为主体,外链一个H5项目,相当于在小程序webView几个页面及功能。 现需在小程序扫一扫点击事件触发后通过二维码生成的url跳转到H5项目相关页面 PS:二维码生成可查看这里 一、小程序 二、H5项目 PS:需求中遇到了这种情况,所以这里记录一下,方便自己的

    2024年02月04日
    浏览(45)
  • 微信小程序(扫一扫功能)

    最简单的扫一扫说明方法 问题 如何实现扫一扫功能? 如何添加手机中的图片文件进行扫码? 日常生活中,需要扫描二维码的地方随处可见,而如何让小程序实现扫一扫的功能呢?这就需要对js进行一个配置。 代码如下: 微信小程序的三大优势 1、开发时间短、成本低。 相

    2024年02月09日
    浏览(48)
  • iOS开发 - 系统自带框架实现扫一扫功能

    iOS 扫一扫 利用系统自带框架实现扫一扫功能 扫一扫功能相机和相册权限,在info.plist中设置询问用户是否允许访问的权限。 info.plist加入NSCameraUsageDescription、NSPhotoLibraryUsageDescription、NSPhotoLibraryAddUsageDescription 当每次进入扫一扫页面时,需要判断是否开启了权限 AVCaptureDevice:

    2024年02月15日
    浏览(37)
  • uniapp实现扫一扫功能,扫码成功后跳转页面

    uniapp官方有提供的相关api实现跳转到web网页(h5)的功能,在开发小程序中,是一项很常见的功能开发。该功能使用到的api uni.scanCode 详细步骤如下: 1.在ui库中找到扫码icon,以uViewUI为例 绑定点击事件@click 2. 在事件clickScan中处理逻辑 3. 在src文件夹中写一个组件,我定义为w

    2024年02月07日
    浏览(38)
  • 教你简单搞定小程序扫一扫以及生成普通二维码功能

    在生活中时常需要用小程序扫描识别相应的二维码(不包含小程序二维码),通过进入到相应的小程序,然后调起手机的相机进行扫一扫。那么将会更加方便简单的实现相应的功能。生成普通的二维码用weapp-qrcode.js来实现,识别二维码用wx.scanCode()或camera来实现,下面下面将

    2024年02月07日
    浏览(37)
  • uniapp微信小程序实现调用摄像头扫一扫的功能

    在小程序项目中,经常会用到扫码的功能,比如收集表单信息、或者内部自定义的二维码等。下面为大家介绍使用uniapp开发微信小程序时如何调用摄像头(注意:调用摄像头功能在微信开发者工具的模拟器中无法调用,需要真机模拟) 上代码: 在需要扫码的地方调用该方法

    2024年01月20日
    浏览(69)
  • flutter开发实战-flutter二维码条形码扫一扫功能实现

    flutter开发实战-flutter二维码条形码扫一扫功能实现 flutter开发实战-flutter二维码扫一扫功能实现,要使用到摄像头的原生的功能,使用的是插件:scan 效果图如下 1.1 iOS权限设置 1.2 android权限设置 1.3 使用ScanView的widget 扫一扫Widget使用ScanController来做响应的控制 暂停/恢复camera 识

    2024年02月16日
    浏览(46)
  • uniapp移动端——企业微信H5调用jssdk实现扫一扫,通过weixin-java-cp获取ticket签名,配置config

    背景: 使用企业微信开发扫一扫功能 可信域名验证  (1)企业微信的可信域名需要和企业微信的备案主体一致。 域名备案主体可通过站长工具查看域名备案主体。https://icp.chinaz.com/ 企业微信备案主体可以咨询管理员 (2)通过nginx配置域名归属验证txt文件 具体操作详见: htt

    2024年01月25日
    浏览(41)
  • 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...

    (~ ̄▽ ̄)~,hello,微信小程序系列第二篇,介绍下小程序里的 前端常用功能api ,可以快速copy使用~ 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实现:跳转官方文档 点击按钮,直接复制文本,直接调用微信方法: 有时显示一些地址需要在地图显示,

    2023年04月09日
    浏览(78)
  • 微信小程序扫一扫

    微信扫一扫有两种 1、wx.scanCode微信扫一扫,普通进入微信小程序需要微信公众平台进行配置 具体请看微信官方文档 扫普通链接二维码打开小程序 | 微信开放文档 微信扫一扫代码如下    button class=\\\"codeBut\\\" bindtap=\\\"scanBut\\\"扫码/button  scanBut(){          var that = this;    

    2024年02月10日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包