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
keydownkezelő úgy hívja apreventDefault()metódust, hogy az blokkolja a karakterbevitelt - Az alkalmazás
pastevagyinputesemé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
- 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.
- 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).
- 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.
- 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.
- Ellenőrizze, hogy az alkalmazás a
keypresseseményt figyeli-e (elavult és egyes billentyűknél megbízhatatlan) akeydown/keyuphelyett.
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
keypressfigyelőketkeydown/keyupfigyelőkre, mert akeypresselavult, é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)