Hopp til innhold

Barcode Scanner Emulator

Skanneren virker i Notisblokk, men ikke i POS

Dette er et av de mest rapporterte strekkodeproblemene, og det betyr nesten alltid at skanner og tilkobling er i orden. Feilen ligger i hvordan programmet håndterer tastaturinndata.

Problem

Skanning inn i et enkelt tekstprogram gir riktig verdi hver gang, men skanning inn i POS-systemet, nettprogrammet eller et internt verktøy gir ingenting, delvis inndata eller feil atferd.

Mulige årsaker

  • Målfeltet har ikke tastaturfokus i skanneøyeblikket, eller fokus er på et element som ikke er et inndatafelt
  • En keydown-behandler kaller preventDefault() på en måte som blokkerer tegninntasting
  • Programmet stoler på paste- eller input-hendelser som skannertastetrykk ikke utløser slik du forventer
  • En inndatamaske eller valideringsregex avviser et gyldig tegn i den skannede lasten
  • ENTER/TAB-suffikset utløser en utilsiktet handling (sender et skjema for tidlig, lukker en modal, navigerer bort)
  • Skanningen går raskere enn en forsinket eller begrenset inndatabehandler rekker å registrere hvert tastetrykk

Diagnostisk arbeidsflyt

  1. Åpne tastaturhendelsestesten i samme nettleser og skann strekkoden. Hvis hvert tegn logges riktig her, mottar nettleser og operativsystem hendelser fint, så feilen ligger i programmets hendelseshåndtering.
  2. Sjekk om inndatafeltet har fokus rett før skanningen i den ekte arbeidsflyten, ikke bare når du klikker i det manuelt under testing.
  3. Åpne nettleserens DevTools-konsoll og se etter JavaScript-feil under skanningen. En feil midt i en behandler kan stoppe videre tastetrykk i stillhet.
  4. Fjern midlertidig inndatamaske, validering eller debounce-logikk og test på nytt for å isolere hvilket lag som dropper inndata.
  5. Sjekk om programmet lytter etter keypress (utfaset og upålitelig for noen taster) i stedet for keydown/keyup.

Slik retter du

  • Sørg for at målfeltet får fokus programmatisk når arbeidsflyten forventer en skanning (for eksempel rett etter at en linje er lagt til)
  • Bytt ut keypress-lyttere med keydown/keyup, siden keypress er utfaset og håndterer noen taster inkonsekvent
  • Gå gjennom kall til preventDefault() i tastaturbehandlere slik at de ikke blokkerer gyldige tegntaster
  • Løsne inndatamasker og validering slik at de godtar hele tegnområdet symbologiene kan produsere, og valider den sammensatte verdien i stedet for enkelttastetrykk
  • Tilpass skannerens suffiks til det skjemaet forventer (se ENTER- og TAB-suffikser)

Relaterte verktøy

Tastaturhendelsestest · Strekkodeinndatatest