最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE?html5-qrcode實(shí)現(xiàn)H5掃一掃功能實(shí)例

 更新時(shí)間:2023年08月05日 08:37:37   作者:改bug的101天  
這篇文章主要給大家介紹了關(guān)于VUE?html5-qrcode實(shí)現(xiàn)H5掃一掃功能的相關(guān)資料,html5-qrcode是輕量級(jí)和跨平臺(tái)的QR碼和條形碼掃碼的JS庫,集成二維碼、條形碼和其他一些類型的代碼掃描功能,需要的朋友可以參考下

官方文檔  html5-qrcode

安裝   npm i html5-qrcode

1、新建一個(gè)組件 

<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、獲取攝像權(quán)限在created調(diào)用

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: 您需要授予相機(jī)訪問權(quán)限"
					  this.$emit("err",this.error)
			        });
},

4、獲取掃碼內(nèi)容

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、必須在銷毀頁面前關(guān)閉掃碼功能否則會(huì)報(bào)錯(cuò)  could not start video source

//銷毀前調(diào)用
beforeDestroy() {
		    this.stop();
}
//關(guān)閉掃碼
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:掃碼內(nèi)容
}
geterror(e){
    //e:報(bào)錯(cuò)內(nèi)容
}

組件完整代碼

<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: 您需要授予相機(jī)訪問權(quán)限"
					  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>

引用組件頁面

<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)
			},}
}

總結(jié)

到此這篇關(guān)于VUE html5-qrcode實(shí)現(xiàn)H5掃一掃功能的文章就介紹到這了,更多相關(guān)VUE html5-qrcode H5掃一掃內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3+TypeScript實(shí)現(xiàn)遞歸菜單組件的完整實(shí)例

    Vue3+TypeScript實(shí)現(xiàn)遞歸菜單組件的完整實(shí)例

    Vue.js中的遞歸組件是一個(gè)可以調(diào)用自己的組件,遞歸組件一般用于博客上顯示評(píng)論,形菜單或者嵌套菜單,文章主要給大家介紹了關(guān)于Vue3+TypeScript實(shí)現(xiàn)遞歸菜單組件的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • vue項(xiàng)目實(shí)現(xiàn)搜索內(nèi)容變紅色顯示

    vue項(xiàng)目實(shí)現(xiàn)搜索內(nèi)容變紅色顯示

    這篇文章主要為大家介紹了vue項(xiàng)目實(shí)現(xiàn)搜索內(nèi)容變紅色顯示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 簡(jiǎn)單說說如何使用vue-router插件的方法

    簡(jiǎn)單說說如何使用vue-router插件的方法

    這篇文章主要介紹了如何使用vue-router插件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue頁面使用多個(gè)定時(shí)器的方法

    vue頁面使用多個(gè)定時(shí)器的方法

    這篇文章主要為大家詳細(xì)介紹了vue頁面使用多個(gè)定時(shí)器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解

    Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解

    這篇文章主要介紹了Vue select 綁定動(dòng)態(tài)變量的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Vue實(shí)現(xiàn)多標(biāo)簽選擇器

    Vue實(shí)現(xiàn)多標(biāo)簽選擇器

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)多標(biāo)簽選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Vue.js中集成Socket.IO實(shí)現(xiàn)實(shí)時(shí)聊天功能

    Vue.js中集成Socket.IO實(shí)現(xiàn)實(shí)時(shí)聊天功能

    隨著 Web 技術(shù)的發(fā)展,實(shí)時(shí)通信成為現(xiàn)代 Web 應(yīng)用的重要組成部分,Socket.IO 是一個(gè)流行的庫,支持及時(shí)、雙向與基于事件的通信,適用于各種平臺(tái)和設(shè)備,本文將介紹如何在 Vue.js 項(xiàng)目中集成 Socket.IO,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的實(shí)時(shí)聊天應(yīng)用,需要的朋友可以參考下
    2024-12-12
  • uniapp前端支付篇之微信、抖音、快手、h5四個(gè)平臺(tái)支付功能

    uniapp前端支付篇之微信、抖音、快手、h5四個(gè)平臺(tái)支付功能

    支付功能在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于uniapp前端支付篇之微信、抖音、快手、h5四個(gè)平臺(tái)支付功能的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目

    Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目

    本文主要介紹了Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue(element ui)中操作row參數(shù)的使用方式

    Vue(element ui)中操作row參數(shù)的使用方式

    這篇文章主要介紹了Vue(element ui)中操作row參數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

西平县| 炉霍县| 贵溪市| 西林县| 昭觉县| 灌阳县| 若尔盖县| 巴彦淖尔市| 陈巴尔虎旗| 商城县| 铜川市| 呼和浩特市| 阳高县| 满洲里市| 东港市| 石河子市| 高邮市| 宣武区| 阿拉善左旗| 徐州市| 灵丘县| 沙坪坝区| 湖州市| 临安市| 镇宁| 西充县| 阿城市| 冀州市| 罗城| 阜康市| 璧山县| 尼玛县| 安乡县| 玉屏| 锦州市| 大英县| 承德市| 峨眉山市| 门头沟区| 定南县| 民丰县|