Preskoči na vsebino

Barcode Scanner Emulator

Čitalnik deluje v Notepadu, ne pa v POS

To je ena najpogosteje prijavljenih težav s črtnimi kodami in skoraj vedno pomeni, da sta čitalnik in povezava v redu — napaka je v tem, kako aplikacija obravnava vnos s tipkovnice.

Težava

Branje v navaden urejevalnik besedila vsakič ustvari pravilno vrednost, branje v sistem POS, spletno aplikacijo ali interno orodje pa ne ustvari ničesar, le delni vnos ali napačno vedenje.

Možni vzroki

  • Ciljno polje ob času branja nima fokusa tipkovnice ali pa je fokus na elementu, ki ni vnos
  • Obravnalnik keydown pokliče preventDefault() tako, da blokira vnos znakov
  • Aplikacija se zanaša na dogodke paste ali input, ki jih pritiski čitalnika naravno ne sprožijo tako, kot pričakujete
  • Vhodna maska ali regularni izraz za preverjanje zavrne veljaven znak v prebranih podatkih
  • Pripona ENTER/TAB sproži nenamerno dejanje (prezgodnja oddaja obrazca, zaprtje modalnega okna, odhod drugam)
  • Branje poteka hitreje, kot lahko obravnalnik vnosa z debounce ali throttle zabeleži vsak pritisk

Diagnostični potek

  1. V istem brskalniku odprite preizkuševalnik dogodkov tipkovnice in preberite črtno kodo. Če se tu vsak znak pravilno zabeleži, brskalnik in operacijski sistem dogodke prejemata v redu, zato je napaka v obravnavi dogodkov v vaši aplikaciji.
  2. Preverite, ali je vnosno polje v fokusu tik pred branjem v dejanskem poteku (ne le, ko nanj pri preizkusu ročno kliknete).
  3. Odprite konzolo DevTools v brskalniku in preverite napake JavaScript, vržene med branjem — napaka sredi obravnalnika lahko tiho ustavi obdelavo nadaljnjih pritiskov.
  4. Začasno odstranite vhodno masko, preverjanje veljavnosti ali logiko debounce in znova preizkusite, da izolirate plast, ki vnos zavrže.
  5. Preverite, ali aplikacija posluša keypress (zastarelo in pri nekaterih tipkah nezanesljivo) namesto keydown/keyup.

Kako popraviti

  • Poskrbite, da je ciljno polje programsko v fokusu vedno, ko potek pričakuje branje (na primer takoj po dodajanju postavke)
  • Zamenjajte poslušalce keypress z keydown/keyup, ker je keypress zastarel in nekatere tipke obravnava nedosledno
  • Preglejte klice preventDefault() v obravnalnikih tipkovnice, da ne blokirajo upravičenih znakovnih tipk
  • Zrahljajte vhodne maske in preverjanje, da sprejmejo celoten nabor znakov, ki ga lahko ustvarijo vaše simbologije črtnih kod, nato preverite sestavljeno vrednost, ne posameznih pritiskov
  • Uskladite pripono čitalnika s tem, kar obrazec pričakuje (glejte Pripone ENTER in TAB)

Povezana orodja

Preizkuševalnik dogodkov tipkovnice · Preizkuševalnik vnosa črtnih kod