uniapp+native.js monitorea el escáner de códigos USB de Android

       Recientemente, el proyecto encontró tal demanda: la caja registradora del sistema Android necesita monitorear los datos de escaneo del escáner USB cuando no hay un foco en el cuadro de entrada . La tecnología aplicada es uniapp integrada en el sistema operativo Android. Al principio, seguí usando Android para escribir métodos de monitoreo y luego devolví los datos del código escaneado a uniapp. Sin embargo, al depurar, descubrí que no era tan ideal. Una de las razones es que la página está escrita por Vue, y cuando la página del subprograma se abre de forma nativa, no se puede iniciar Monitoreo de eventos de código de escaneo USB, tal vez no utilicé el método correcto. Otro problema es la comunicación entre uniapp y el host de Android. Finalmente, uniapp se usa para monitorear el evento de pulsación de tecla del teclado, pero uniapp no ​​monitorea el evento de pulsación de tecla para Android. Si es una ventana, puedes escribirla así:

window.addEventListener('keypress',function(e){

})

      En la plataforma Android, solo puede usar H5 Native.js para monitorear el evento de pulsación de tecla. Sin el evento de pulsación de tecla, el efecto es en realidad el mismo. Puede monitorear los datos del escáner USB sin un cuadro de entrada (en realidad es un teclado externo). . KeyCode también debe convertirse, y la tabla de correspondencia clave-valor aquí debe ser Android.

<template>
	<view >	
     <text>输入内容:{
   
   {inputString}}</text>
	</view>
</template>


data() {
    	  return {
				 
				inputString:'',
				inputCache:'',
				 
			}
},

onLoad() {
	plus.key.addEventListener("keyup",this.keypress);
},
methods: {
	keypress(e){
				// console.log('focusElement',this.focusElement)
				//if(this.focusElement) return;
				if(e.keyCode===66){
								  this.inputString = this.inputCache;
								  this.inputCache = '';
				}else{
								  this.inputCache += this.keyValue(e.keyCode)
				}
				console.log('keypress argument:',e)
			},

	keyValue(keyCode){
				switch(keyCode){
					case 7:
					  return 0;
					case 8:
					  return 1;
					case 9:
					  return 2;
					case 10:
					  return 3;
				    case 11:
				      return 4;
				    case 12:
				      return 5;
				    case 13:
					  return 6;
				    case 14:
					  return 7;
				    case 15:
					  return 8;
				    case 16:
					  return 9;
				    case 156:
					   return '-';
					case 70:
					    return '=';
					case 157:
						return '+';
					default :
					    return '' ;
					
				}
			},
}

Supongo que te gusta

Origin blog.csdn.net/qq_33278354/article/details/126409071
Recomendado
Clasificación