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

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

 更新時(shí)間:2023年06月19日 15:38:08   作者:Lizy!  
最近在使用vue開(kāi)發(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開(kāi)發(fā)  可以直接使用uni的語(yǔ)法 并且兼容多端

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

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

第三種:用第三方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依賴(lài)

//   npm 下載

npm install --save vue-qecode-reader

//   cnpm 下載

cnpm install --save vue-qrcode-reader

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

代碼如下

<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ī)訪問(wèn)權(quán)限')
                        this.$router.push({path:'/'})
                    } else if (error.name === 'NotFoundError') {
                        this.$router.push({path:'/'})
                        window.alert('這個(gè)設(shè)備上沒(méi)有攝像頭')
                    } 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全面解析vue中的數(shù)據(jù)雙向綁定

    全面解析vue中的數(shù)據(jù)雙向綁定

    這篇文章主要介紹了vue中的數(shù)據(jù)雙向綁定問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • 詳解Vue2如何監(jiān)聽(tīng)數(shù)組的變化

    詳解Vue2如何監(jiān)聽(tīng)數(shù)組的變化

    這篇文章主要來(lái)和大家詳細(xì)探討一下Vue2中是如何監(jiān)聽(tīng)數(shù)組的變化的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 詳解如何創(chuàng)建并發(fā)布一個(gè) vue 組件

    詳解如何創(chuàng)建并發(fā)布一個(gè) vue 組件

    這篇文章主要介紹了詳解如何創(chuàng)建并發(fā)布一個(gè)vue組件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Vue項(xiàng)目配置在局域網(wǎng)下訪問(wèn)方式

    Vue項(xiàng)目配置在局域網(wǎng)下訪問(wèn)方式

    這篇文章主要介紹了Vue項(xiàng)目配置在局域網(wǎng)下訪問(wèn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3的動(dòng)態(tài)組件使用場(chǎng)景與示例

    Vue3的動(dòng)態(tài)組件使用場(chǎng)景與示例

    在 Vue 中,組件是構(gòu)建用戶界面的基礎(chǔ),而動(dòng)態(tài)組件的引入,更是讓開(kāi)發(fā)者能夠在應(yīng)用中實(shí)現(xiàn)靈活、可重用的視圖邏輯,本文將探討 Vue 3 中的動(dòng)態(tài)組件,分享其使用場(chǎng)景,并通過(guò)示例代碼來(lái)說(shuō)明其操作方法,需要的朋友可以參考下
    2025-01-01
  • 關(guān)閉eslint檢查和ts檢查的簡(jiǎn)單步驟記錄

    關(guān)閉eslint檢查和ts檢查的簡(jiǎn)單步驟記錄

    這篇文章主要給大家介紹了關(guān)于關(guān)閉eslint檢查和ts檢查的相關(guān)資料,eslint是一個(gè)JavaScript的校驗(yàn)插件,通常用來(lái)校驗(yàn)語(yǔ)法或代碼的書(shū)寫(xiě)風(fēng)格,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法

    vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法

    這篇文章主要介紹了vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • Vue 項(xiàng)目中遇到的跨域問(wèn)題及解決方法(后臺(tái)php)

    Vue 項(xiàng)目中遇到的跨域問(wèn)題及解決方法(后臺(tái)php)

    這篇文章主要介紹了Vue 項(xiàng)目中遇到的跨域問(wèn)題及解決方法(后臺(tái)php),前端采用vue框架,后臺(tái)php,具體解決方法,大家參考下本文
    2018-03-03
  • vue制作加載更多功能的正確打開(kāi)方式

    vue制作加載更多功能的正確打開(kāi)方式

    這篇文章是一篇Vue.js的教程,目標(biāo)在于用一種常見(jiàn)的業(yè)務(wù)場(chǎng)景——分頁(yè)/無(wú)限加載,以及編寫(xiě)過(guò)程中自己的錯(cuò)誤寫(xiě)法,分享給大家,幫助讀者更好的理解Vue.js中的一些設(shè)計(jì)思想。
    2016-10-10
  • vant?toast?關(guān)閉棧溢出問(wèn)題及解決

    vant?toast?關(guān)閉棧溢出問(wèn)題及解決

    這篇文章主要介紹了vant?toast?關(guān)閉棧溢出問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論

阳城县| 乌拉特前旗| 潢川县| 前郭尔| 资中县| 华容县| 林州市| 承德县| 前郭尔| 灵川县| 天祝| 潞西市| 沈阳市| 新津县| 深州市| 基隆市| 张家港市| 万荣县| 南宫市| 宜丰县| 英吉沙县| 沈丘县| 高州市| 惠安县| 濮阳县| 绥宁县| 木里| 林西县| 昌平区| 长宁区| 长海县| 日土县| 冷水江市| 定远县| 姚安县| 深圳市| 大庆市| 三都| 奈曼旗| 芦山县| 东台市|