Preskoči na sadržaj

Barcode Scanner Emulator

Skener radi u Notepadu, ali ne u POS-u

Ovo je jedan od najčešće prijavljenih problema s barkodom i gotovo uvijek znači da su skener i veza u redu — greška je u načinu na koji aplikacija obrađuje unos s tipkovnice.

Problem

Skeniranje u običan uređivač teksta svaki put daje ispravnu vrijednost, ali skeniranje u POS sustav, web-aplikaciju ili interni alat ne daje ništa, daje djelomičan unos ili pogrešno ponašanje.

Mogući uzroci

  • Ciljano polje nema fokus tipkovnice u trenutku skeniranja ili je fokus na elementu koji nije unos
  • Obrađivač keydown poziva preventDefault() na način koji blokira unos znakova
  • Aplikacija se oslanja na događaje paste ili input, koje pritisci skenera ne pokreću onako kako očekujete
  • Maska unosa ili regularni izraz provjere valjanosti odbija valjani znak u skeniranom sadržaju
  • Sufiks ENTER/TAB pokreće neželjenu radnju (prerano slanje obrasca, zatvaranje modalnog prozora, odlazak drugamo)
  • Skeniranje stiže brže nego što obrađivač unosa s odgodom ili ograničenjem može zabilježiti svaki pritisak

Dijagnostički tijek

  1. Otvorite tester događaja tipkovnice u istom pregledniku i skenirajte barkod. Ako se ovdje svaki znak ispravno zabilježi, preglednik i operacijski sustav primaju događaje, pa je greška u obradi događaja vaše aplikacije.
  2. Provjerite ima li polje za unos fokus neposredno prije skeniranja u stvarnom tijeku (ne samo kad ga ručno kliknete radi testiranja).
  3. Otvorite konzolu DevTools preglednika i potražite JavaScript greške bačene tijekom skeniranja — greška usred obrađivača može tiho zaustaviti obradu daljnjih pritisaka.
  4. Privremeno uklonite masku unosa, provjeru valjanosti ili logiku odgode i ponovno testirajte da izdvojite koji sloj gubi unos.
  5. Provjerite sluša li aplikacija keypress (zastarjelo i nepouzdano za neke tipke) umjesto keydown/keyup.

Kako popraviti

  • Osigurajte da se ciljano polje programski fokusira kad god tijek očekuje skeniranje (na primjer odmah nakon dodavanja stavke)
  • Zamijenite slušače keypress sa keydown/keyup, jer je keypress zastario i neke tipke obrađuje nedosljedno
  • Pregledajte pozive preventDefault() u obrađivačima tipkovnice da ne blokiraju legitimne znakovne tipke
  • Olabavite maske i provjeru valjanosti da prihvate cijeli raspon znakova koje simbologije mogu proizvesti, a zatim provjerite sastavljenu vrijednost umjesto pojedinačnih pritisaka
  • Uskladite sufiks skenera s onim što obrazac očekuje (vidi Sufiksi ENTER i TAB)

Povezani alati

Tester događaja tipkovnice · Tester unosa barkoda