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
keydownpokličepreventDefault()tako, da blokira vnos znakov - Aplikacija se zanaša na dogodke
pastealiinput, 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
- 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.
- Preverite, ali je vnosno polje v fokusu tik pred branjem v dejanskem poteku (ne le, ko nanj pri preizkusu ročno kliknete).
- Odprite konzolo DevTools v brskalniku in preverite napake JavaScript, vržene med branjem — napaka sredi obravnalnika lahko tiho ustavi obdelavo nadaljnjih pritiskov.
- Začasno odstranite vhodno masko, preverjanje veljavnosti ali logiko debounce in znova preizkusite, da izolirate plast, ki vnos zavrže.
- Preverite, ali aplikacija posluša
keypress(zastarelo in pri nekaterih tipkah nezanesljivo) namestokeydown/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
keypresszkeydown/keyup, ker jekeypresszastarel 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