Ugrás a tartalomra

Barcode Scanner Emulator

Az olvasó Notepadben működik, POS-ban nem

Ez az egyik leggyakrabban jelzett vonalkódprobléma, és szinte mindig azt jelenti, hogy az olvasó és a kapcsolat rendben van — a hiba abban van, ahogyan az alkalmazás a billentyűzetbemenetet kezeli.

Probléma

Az egyszerű szövegszerkesztőbe való beolvasás minden alkalommal a helyes értéket adja, de a POS-rendszerbe, a webes alkalmazásba vagy a belső eszközbe való beolvasás semmit, részleges bemenetet vagy hibás viselkedést eredményez.

Lehetséges okok

  • A célmezőnek nincs billentyűzetfókusza a beolvasáskor, vagy a fókusz nem beviteli elemen van
  • Egy keydown kezelő úgy hívja a preventDefault() metódust, hogy az blokkolja a karakterbevitelt
  • Az alkalmazás paste vagy input eseményekre támaszkodik, amelyeket az olvasó leütései nem úgy indítanak el, ahogy várja
  • Egy beviteli maszk vagy érvényesítő reguláris kifejezés elutasít egy érvényes karaktert a beolvasott tartalomban
  • Az ENTER/TAB utótag nem kívánt műveletet indít (az űrlap korai elküldése, modális ablak bezárása, elnavigálás)
  • A beolvasás gyorsabb, mint ahogy egy késleltetett vagy korlátozott bemenetkezelő minden leütést regisztrálni tud

Diagnosztikai munkafolyamat

  1. Nyissa meg a billentyűzetesemény-tesztelőt ugyanabban a böngészőben, és olvassa be a vonalkódot. Ha itt minden karakter helyesen naplózódik, a böngésző és az operációs rendszer megkapja az eseményeket, tehát a hiba az alkalmazás eseménykezelésében van.
  2. Ellenőrizze, hogy a beviteli mezőnek van-e fókusza közvetlenül a beolvasás előtt a valódi munkafolyamatban (nem csak akkor, amikor teszteléshez kézzel rákattint).
  3. Nyissa meg a böngésző DevTools-konzolját, és keressen a beolvasás közben dobott JavaScript-hibákat — egy kezelő közepén dobott hiba csendben leállíthatja a további leütések feldolgozását.
  4. Ideiglenesen távolítson el minden beviteli maszkot, érvényesítést vagy késleltetési logikát, és teszteljen újra, hogy kiderüljön, melyik réteg ejti el a bemenetet.
  5. Ellenőrizze, hogy az alkalmazás a keypress eseményt figyeli-e (elavult és egyes billentyűknél megbízhatatlan) a keydown/keyup helyett.

Hogyan javítható

  • Biztosítsa, hogy a célmező programozottan kapjon fókuszt, amikor a munkafolyamat beolvasást vár (például közvetlenül egy sor hozzáadása után)
  • Cserélje a keypress figyelőket keydown/keyup figyelőkre, mert a keypress elavult, és egyes billentyűket következetlenül kezel
  • Vizsgálja át a preventDefault() hívásokat a billentyűkezelőkben, hogy ne blokkolják a jogos karakterbillentyűket
  • Lazítsa a maszkokat és az érvényesítést, hogy elfogadják a szimbológiák által előállítható teljes karaktertartományt, majd a összeállított értéket ellenőrizze, ne az egyes leütéseket
  • Igazítsa az olvasó utótagját ahhoz, amit az űrlap vár (lásd az ENTER és TAB utótagok útmutatót)

Kapcsolódó eszközök

Billentyűzetesemény-tesztelő · Vonalkódbevitel-tesztelő