欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2移動(dòng)端使用vue-qrcode-reader實(shí)現(xiàn)掃一掃功能的步驟

 更新時(shí)間:2023年06月19日 15:38:08   作者:Lizy!  
最近在使用vue開發(fā)的h5移動(dòng)端想要實(shí)現(xiàn)一個(gè)調(diào)用攝像頭掃描二維碼的功能,所以下面這篇文章主要給大家介紹了關(guān)于vue2移動(dòng)端使用vue-qrcode-reader實(shí)現(xiàn)掃一掃功能的相關(guān)資料,需要的朋友可以參考下

移動(dòng)端實(shí)現(xiàn)掃一掃   掃碼功能

第一種:如果是用uniapp開發(fā)  可以直接使用uni的語法 并且兼容多端

第二種:如果是開發(fā)瀏覽器的網(wǎng)頁,基于微信的話,也可以用微信的weixin-js-sdk

        具體流程參考官網(wǎng):概述 | 微信開放文檔

第三種:用第三方vue-qrcode-reader實(shí)現(xiàn)掃一掃功能,

        詳細(xì)流程參考官網(wǎng):Simple | Vue Qrcode Reader

以下內(nèi)容為用vue-qrcode-reader實(shí)現(xiàn)掃一掃功能步驟

1.下載vue-qrcode-reader依賴

//   npm 下載

npm install --save vue-qecode-reader

//   cnpm 下載

cnpm install --save vue-qrcode-reader

 2.此次流程是在A頁面添加掃一掃button,然后點(diǎn)擊跳轉(zhuǎn)到B頁面,然后掃一掃寫在B頁面,進(jìn)入B頁面初始化,然后同意使用相機(jī),在掃描到二維碼后攜帶掃到的內(nèi)容跳轉(zhuǎn)到A頁面

代碼如下

<template>
    <div class="saoma">
        <qrcode-stream  @decode="onDecode" @init="onInit" style="height: 100vh;width:100vw">
            <div>
                <div class="qr-scanner">
                <div class="box">
                    <div class="line"></div>
                    <div class="angle"></div>
                </div>
                </div>
            </div>
        </qrcode-stream>
    </div>
</template>
<script>
    import {
        QrcodeStream
    } from 'vue-qrcode-reader';
    export default {
        components: {
            QrcodeStream
        },
        data() {
            return {
                result: '', // 掃碼結(jié)果信息
                error: '' // 錯(cuò)誤信息
            }
        },
        methods: {
            onDecode(result) {
                if(result){
                    this.$router.push({
                        path:'/',
                        query: {
                            code:result,
                        }
                    })
                }
            },
            async onInit(promise) {
                try {
                    await promise
                } catch (error) {
                    if (error.name === 'NotAllowedError') {
                        window.alert('您需要授予相機(jī)訪問權(quán)限')
                        this.$router.push({path:'/'})
                    } else if (error.name === 'NotFoundError') {
                        this.$router.push({path:'/'})
                        window.alert('這個(gè)設(shè)備上沒有攝像頭')
                    } else if (error.name === 'NotSupportedError') {
                        this.$router.push({path:'/'})
                        window.alert('所需的安全上下文(HTTPS、本地主機(jī))')
                    } else if (error.name === 'NotReadableError') {
                        this.$router.push({path:'/'})
                        window.alert('相機(jī)被占用')
                    } else if (error.name === 'OverconstrainedError') {
                        this.$router.push({path:'/'})
                        window.alert('安裝攝像頭不合適')
                    } else if (error.name === 'StreamApiNotSupportedError') {
                        this.$router.push({path:'/'})
                        window.alert('此瀏覽器不支持流API')
                    }
                }
            },
        }
    }
</script>
<style scoped>
    .saoma {
        width: 100vw;
        height: 100vh;
    }
    .qr-scanner {
    background-image:
        linear-gradient(0deg,
            transparent 24%,
            rgba(32, 255, 77, 0.1) 25%,
            rgba(32, 255, 77, 0.1) 26%,
            transparent 27%,
            transparent 74%,
            rgba(32, 255, 77, 0.1) 75%,
            rgba(32, 255, 77, 0.1) 76%,
            transparent 77%,
            transparent),
        linear-gradient(90deg,
            transparent 24%,
            rgba(32, 255, 77, 0.1) 25%,
            rgba(32, 255, 77, 0.1) 26%,
            transparent 27%,
            transparent 74%,
            rgba(32, 255, 77, 0.1) 75%,
            rgba(32, 255, 77, 0.1) 76%,
            transparent 77%,
            transparent);
        background-size: 3rem 3rem;
        background-position: -1rem -1rem;
        width: 100%;
        /* height: 100%; */
        height: 100vh;
        position: relative;
        background-color: #1110;
      /* background-color: #111; */
    }
    .qr-scanner .box {
        width: 213px;
        height: 213px;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        overflow: hidden;
        border: 0.1rem solid rgba(0, 255, 51, 0.2);
        /* background: url('http://resource.beige.world/imgs/gongconghao.png') no-repeat center center; */
    }
    .qr-scanner .line {
        height: calc(100% - 2px);
        width: 100%;
        background: linear-gradient(180deg, rgba(0, 255, 51, 0) 43%, #00ff33 211%);
        border-bottom: 3px solid #00ff33;
        transform: translateY(-100%);
        animation: radar-beam 2s infinite alternate;
        animation-timing-function: cubic-bezier(0.53, 0, 0.43, 0.99);
        animation-delay: 1.4s;
    }
    .qr-scanner .box:after,
    .qr-scanner .box:before,
    .qr-scanner .angle:after,
    .qr-scanner .angle:before {
        content: '';
        display: block;
        position: absolute;
        width: 3vw;
        height: 3vw;
        border: 0.2rem solid transparent;
    }
    .qr-scanner .box:after,
    .qr-scanner .box:before {
        top: 0;
        border-top-color: #00ff33;
    }
    .qr-scanner .angle:after,
    .qr-scanner .angle:before {
        bottom: 0;
        border-bottom-color: #00ff33;
    }
    .qr-scanner .box:before,
    .qr-scanner .angle:before {
        left: 0;
        border-left-color: #00ff33;
    }
    .qr-scanner .box:after,
    .qr-scanner .angle:after {
        right: 0;
        border-right-color: #00ff33;
    }
    @keyframes radar-beam {
        0% {
            transform: translateY(-100%);
        }
        100% {
            transform: translateY(0);
        }
    }
</style>

以上內(nèi)容即為使用vue-qrcode-reader實(shí)現(xiàn)掃一掃功能的流程

可以直接復(fù)制粘貼使用哦

總結(jié)

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

相關(guān)文章

  • Vue3.x使用mitt.js進(jìn)行組件通信

    Vue3.x使用mitt.js進(jìn)行組件通信

    Vue2.x 使用 EventBus 進(jìn)行組件通信,而 Vue3.x 推薦使用 mitt.js。本文就介紹一下mitt.js的具體使用方法,感興趣的可以了解一下
    2021-06-06
  • 詳解vue項(xiàng)目中如何加載markdown

    詳解vue項(xiàng)目中如何加載markdown

    這篇文章主要為大家詳細(xì)介紹了在vue項(xiàng)目中如何加載markdown,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Vue全局事件總線你了解嗎

    Vue全局事件總線你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Vue全局事件總線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Vue中混入mixin的用法介紹

    Vue中混入mixin的用法介紹

    混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能。一個(gè)混入對象可以包含任意組件選項(xiàng)。當(dāng)組件使用混入對象時(shí),所有混入對象的選項(xiàng)將被“混合”進(jìn)入該組件本身的選項(xiàng)
    2022-10-10
  • vue轉(zhuǎn)electron項(xiàng)目及解決使用fs報(bào)錯(cuò):Module?not?found:?Error:?Can't?resolve?'fs'?in

    vue轉(zhuǎn)electron項(xiàng)目及解決使用fs報(bào)錯(cuò):Module?not?found:?Error:?Can&apo

    這篇文章主要給大家介紹了關(guān)于vue轉(zhuǎn)electron項(xiàng)目及解決使用fs報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?‘fs‘?in的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Vue3?基礎(chǔ)概念與環(huán)境搭建過程詳解

    Vue3?基礎(chǔ)概念與環(huán)境搭建過程詳解

    本文介紹了Vue3的基礎(chǔ)概念,包括響應(yīng)式系統(tǒng)、組合式API和更好的TypeScript支持,同時(shí),文章手把手教你如何搭建Vue3開發(fā)環(huán)境,使用Vite創(chuàng)建項(xiàng)目,并解析了項(xiàng)目的結(jié)構(gòu),通過這些內(nèi)容,讀者可以快速上手Vue3,并為后續(xù)的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ),感興趣的朋友一起看看吧
    2025-02-02
  • Vue子組件與父組件詳細(xì)解析

    Vue子組件與父組件詳細(xì)解析

    這篇文章主要介紹的是Vue子組件與父組件,什么是父組件,什么是子組件很多時(shí)候面對這個(gè)問題我們都會(huì)有所混淆,下面文章我們就來詳細(xì)介紹,需要的朋友可以參考一下
    2021-10-10
  • Vue使用ElemenUI對table的指定列進(jìn)行合算的方法

    Vue使用ElemenUI對table的指定列進(jìn)行合算的方法

    這篇文章主要介紹了Vue使用ElemenUI對table的指定列進(jìn)行合算的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Vue3中的極致防抖/節(jié)流詳解(附常見方式防抖/節(jié)流)

    Vue3中的極致防抖/節(jié)流詳解(附常見方式防抖/節(jié)流)

    在JavaScript中函數(shù)的防抖和節(jié)流不是什么新鮮話題,這篇文章主要給大家介紹了關(guān)于Vue3中極致防抖/節(jié)流的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器實(shí)例代碼

    利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于如何利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論