国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp監(jiān)聽(tīng)掃碼槍鍵盤(pán)事件|無(wú)輸入框式監(jiān)聽(tīng)

這篇具有很好參考價(jià)值的文章主要介紹了uniapp監(jiān)聽(tīng)掃碼槍鍵盤(pán)事件|無(wú)輸入框式監(jiān)聽(tīng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一般的掃碼槍通過(guò)USB或藍(lán)牙連接手機(jī)或電腦,充當(dāng)?shù)氖且粋€(gè)外接設(shè)備。當(dāng)掃碼后,掃碼槍會(huì)自動(dòng)識(shí)別內(nèi)容,然后向連接的電腦或手機(jī)發(fā)送鍵盤(pán)事件keydown或keyup。

input輸入框式

如果頁(yè)面上有input輸入框就很簡(jiǎn)單,直接聚焦input,然后掃碼,input框會(huì)自動(dòng)填充內(nèi)容,并自動(dòng)產(chǎn)生回車事件,代碼只需處理回車事件即可。

<template>
    <input v-model="inputString" @confirm="onConfirm" />
</template>

<script setup>
import { ref } from "vue"
const inputString = ref("")
const onConfirm = () => {
    console.log('輸入的值為', inputString.value)
}
</script>

以上代碼,h5、App都適用。

無(wú)輸入框式

沒(méi)有input框時(shí),就需要監(jiān)聽(tīng)頁(yè)面的鍵盤(pán)事件。h5可以使用document.keyup來(lái)監(jiān)聽(tīng),但是app里沒(méi)有document,只能使用plus.key來(lái)監(jiān)聽(tīng)。處理邏輯一樣,只是監(jiān)聽(tīng)方式不一樣。

同時(shí)兼容H5和APP的用法

<template>
    <view>監(jiān)聽(tīng)到的內(nèi)容:{{inputString}}</view>
</template>

<script setup>
import { ref } from "vue"
import { onLoad, onShow, onHide, onBackPress, onUnload } from "@dcloudio/uni-app";
const inputString = ref('')
const keyCodeCache = ref([])
const inputCache = ref('')
const onConfirm = (code)=>{
    console.log('拿到的code', code);
    // 此處寫(xiě)我們自己的邏輯
}
const keypress = (e) => {
    if (e.keyCode === 66 || e.key =='Enter') {
        inputString.value = inputCache.value;
        onConfirm(inputString.value)
        inputCache.value = '';
    } else {
        inputCache.value += e.key
    }
}


onLoad((options) => {
    // #ifdef APP-PLUS
    plus.key.addEventListener("keyup", keypress);
    // #endif 
    // #ifdef H5
    document.addEventListener("keyup", keypress);
    // #endif
})
onUnload(()=>{
    // #ifdef APP-PLUS
    plus.key.removeEventListener("keyup", keypress);
    // #endif
    // #ifdef H5
    document.removeEventListener("keyup", keypress);
    // #endif
})
onHide(()=>{
    // #ifdef APP-PLUS
    plus.key.removeEventListener("keyup", keypress);
    // #endif
    // #ifdef H5
    document.removeEventListener("keyup", keypress);
    // #endif
})
onBackPress(()=>{
    // #ifdef APP-PLUS
    plus.key.removeEventListener("keyup", keypress);
    // #endif
    // #ifdef H5
    document.removeEventListener("keyup", keypress);
    // #endif
})
</script>

實(shí)際運(yùn)行時(shí),可能出現(xiàn)鍵盤(pán)的key和keyCode不兼容問(wèn)題,不同的設(shè)備對(duì)應(yīng)的鍵盤(pán)keyCode可能也不一樣,首先要設(shè)置掃碼槍的鍵盤(pán)模式,然后做一層轉(zhuǎn)換。
下面的掃碼槍設(shè)置為US Keyboard的轉(zhuǎn)換部分邏輯文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-507918.html

import keymap from './keymap'
const keypress = (e) => {
    if (e.keyCode === 66 || e.key =='Enter') {
        inputString.value = inputCache.value;
        inputCache.value = '';
        onConfirm(inputString.value)
    } else {
        inputCache.value += keymap[e.keyCode] || ''
    }
}
// keymap.js 以下來(lái)源網(wǎng)絡(luò)收集,不同的設(shè)備對(duì)應(yīng)的keyCode可能不同
export default {
	"7": "0",
	"8": "1",
	"9": "2",
	"10": "3",
	"11": "4",
	"12": "5",
	"13": "6",
	"14": "7",
	"15": "8",
	"16": "9",
	"29": "A",
	"30": "B",
	"31": "C",
	"32": "D",
	"33": "E",
	"34": "F",
	"35": "G",
	"36": "H",
	"37": "I",
	"38": "J",
	"39": "K",
	"40": "L",
	"41": "M",
	"42": "N",
	"43": "O",
	"44": "P",
	"45": "Q",
	"46": "R",
	"47": "S",
	"48": "T",
	"49": "U",
	"50": "V",
	"51": "W",
	"52": "X",
	"53": "Y",
	"54": "Z",
	"55": ",",
	"56": ".",
	"59": "",
	"69": "-",
	"70": "=",
	"81": "+"
}

到了這里,關(guān)于uniapp監(jiān)聽(tīng)掃碼槍鍵盤(pán)事件|無(wú)輸入框式監(jiān)聽(tīng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python 監(jiān)聽(tīng)鍵盤(pán)事件和鼠標(biāo)事件

    鍵盤(pán)監(jiān)聽(tīng): python有一個(gè)很強(qiáng)大的鍵盤(pán)監(jiān)聽(tīng)?zhēng)?,那就?keyboard 。他的父類庫(kù) pynput 可以實(shí)現(xiàn)鼠標(biāo)監(jiān)聽(tīng) 可以自行下載 pip install keyboard | pip install pynput 代碼參考

    2024年02月13日
    瀏覽(42)
  • 前端監(jiān)聽(tīng)鍵盤(pán)事件

    前端監(jiān)聽(tīng)鍵盤(pán)事件

    需求就如題所示 在react中監(jiān)聽(tīng)如下: keydown事件是鍵盤(pán)的相關(guān)事件,我們主動(dòng)去監(jiān)聽(tīng)一下,然后別忘了去銷毀,?然后有個(gè)寫(xiě)法: 在useEffect中使用return返回了一個(gè)清除監(jiān)聽(tīng)的函數(shù),實(shí)踐了一下return的執(zhí)行時(shí)機(jī),發(fā)現(xiàn)是在頁(yè)面切走的時(shí)候,也就是說(shuō),當(dāng)前的組件被銷毀的時(shí)候執(zhí)

    2024年02月12日
    瀏覽(26)
  • C#全局監(jiān)聽(tīng)鍵盤(pán)事件

    C#如何獲取鍵盤(pán)和鼠標(biāo)處于空閑狀態(tài)下的時(shí)間? 可以通過(guò)windows api 函數(shù) GetLastInputInfo或者全局鉤子HOOK來(lái)實(shí)現(xiàn) 用 GetLastInputInfo 寫(xiě)(鍵鼠空閑15分鐘自動(dòng)彈出一個(gè)頁(yè)面) 新建windows 應(yīng)用程序項(xiàng)目 用HOOK鉤子來(lái)實(shí)現(xiàn) 創(chuàng)建鉤子類 調(diào)用 方法

    2024年02月11日
    瀏覽(22)
  • vue監(jiān)聽(tīng)鼠標(biāo)與鍵盤(pán)事件

    vue監(jiān)聽(tīng)鼠標(biāo)與鍵盤(pán)事件

    ?效果: ?

    2024年02月16日
    瀏覽(31)
  • 基于Vue3實(shí)現(xiàn)掃碼槍掃碼并生成二維碼的代碼解析

    在本文中,我們將介紹如何使用Vue3實(shí)現(xiàn)掃碼槍掃描條形碼或二維碼,并將其轉(zhuǎn)換為二維碼的過(guò)程。這個(gè)過(guò)程將涉及到以下步驟: 在Vue3項(xiàng)目中安裝和導(dǎo)入 vue-qrcode-reader 插件。 創(chuàng)建一個(gè)Vue3組件,用于渲染二維碼。 在組件中實(shí)現(xiàn)掃碼槍掃描條形碼或二維碼的邏輯。 將掃描到的

    2024年02月09日
    瀏覽(25)
  • 微信小程序input監(jiān)聽(tīng)鍵盤(pán)完成事件、回車事件

    微信小程序中,輸入框輸入內(nèi)容,需要輸入完成后點(diǎn)擊鍵盤(pán)完成事件后觸發(fā)搜索 bindconfirm=“事件名稱”

    2024年02月14日
    瀏覽(18)
  • js之 事件監(jiān)聽(tīng)(鼠標(biāo)、焦點(diǎn)、鍵盤(pán)、文本)

    js之 事件監(jiān)聽(tīng)(鼠標(biāo)、焦點(diǎn)、鍵盤(pán)、文本)

    目標(biāo) :能夠給DOM元素添加事件監(jiān)聽(tīng) 什么是事件 :事件是在編程時(shí)系統(tǒng)內(nèi)發(fā)生的動(dòng)作或者發(fā)生的事情,比如用戶在網(wǎng)頁(yè)上單擊一個(gè)按鈕 什么是事件監(jiān)聽(tīng) : ? ? ? ?就是讓程序檢測(cè)是否有事件產(chǎn)生,一旦有事件觸發(fā),就立即調(diào)用一個(gè)函數(shù)做出響應(yīng),也稱為 綁定事件或者注冊(cè)事

    2024年02月14日
    瀏覽(27)
  • Java鍵盤(pán)事件處理及監(jiān)聽(tīng)機(jī)制解析

    Java鍵盤(pán)事件處理及監(jiān)聽(tīng)機(jī)制解析

    Java事件處理采用了委派事件模型。在這個(gè)模型中,當(dāng)事件發(fā)生時(shí),產(chǎn)生事件的對(duì)象將事件信息傳遞給事件的監(jiān)聽(tīng)者進(jìn)行處理。在Java中,事件源是產(chǎn)生事件的對(duì)象,比如窗口、按鈕等;事件是承載事件源狀態(tài)改變時(shí)的對(duì)象,比如鍵盤(pán)事件、鼠標(biāo)事件、窗口事件等等。當(dāng)事件發(fā)

    2024年02月13日
    瀏覽(25)
  • flutter 調(diào)出鍵盤(pán)和監(jiān)聽(tīng)輸入

    調(diào)出鍵盤(pán): 監(jiān)聽(tīng)按鍵: 完整代碼

    2024年02月10日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包