微信小程序實現連續掃碼功能(uniapp)


注:本文使用的是 uniapp 語法。

微信小程序提供了掃碼API:wx.scanCode,但它只能掃一次碼,想要實現連續掃碼,需要借用 camera 組件。camera 組件不僅能拍照,還具有掃碼功能,只要將它的 mode 屬性設置為 scanCode,就會在掃碼識別成功時觸發 bindscancode 事件(在 uniapp 中是 scancode 事件)。

<camera mode="scanCode" device-position="back" flash="off"  @scancode="takeCode"></camera>

在 takeCode 函數里對掃碼結果進行處理:

takeCode: (e) => {
    if(scanFunctionIsUseable) {
        this.scanFunctionIsUseable = false;
        // 對掃碼結果進行處理
        console.log(e.detail.result);

        // 掃碼間隔兩秒
        setTimeout(() => {
        this.scanFunctionIsUseable = true;
        }, 2000)
    }
}

需要注意的是,攝像頭對着碼時,會重復掃描多次,這顯然不是我們想要的。為了避免這種情況,可以增加一個 scanFunctionIsUseable 標志位,在掃碼成功時令它為 false,隔兩秒令它為 true,這樣就可以隔兩秒再去處理掃碼結果。

 

參考:https://blog.csdn.net/du771278794/article/details/86219165


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM