Barcode Scanner Emulator
ስካነር በNotepad ይሠራል በPOS ግን አይሠራም
ይህ በጣም ከሚዘገቡ የባርኮድ ችግሮች አንዱ ነው፣ እና ሁልጊዜ ማለት ይቻላል ስካነሩ እና ግንኙነቱ ደህና ናቸው ማለት ነው — ስህተቱ መተግበሪያዎ የቁልፍ ሰሌዳ ግቤትን እንዴት እንደሚይዝ ነው።
ችግር
ወደ ተራ የጽሑፍ አርታኢ መቃኘት በእያንዳንዱ ጊዜ ትክክለኛውን ዋጋ ያመጣል፣ ነገር ግን ወደ POS ሥርዓትዎ፣ የድር መተግበሪያዎ ወይም ውስጣዊ መሣሪያዎ መቃኘት ምንም፣ ከፊል ግቤት ወይም የተሳሳተ ባህሪ ያመጣል።
ሊሆኑ የሚችሉ ምክንያቶች
- ዒላማው መስክ በቅኝት ጊዜ የቁልፍ ሰሌዳ ትኩረት የለውም፣ ወይም ትኩረት ግቤት ባልሆነ አካል ላይ ነው
- የ
keydownአያያዝ የቁምፊ ግቤትን የሚያግድ መንገድpreventDefault()ይጠራል - መተግበሪያው ስካነር የቁልፍ ጫናዎች እንደሚጠብቁት በተፈጥሮ የማያስነሷቸውን
pasteወይምinputክስተቶች ይተማመናል - የግቤት ጭምብል ወይም የማረጋገጫ አገላለጽ በተቃኘው ጭነት ውስጥ ትክክለኛ ቁምፊን ውድቅ ያደርጋል
- የENTER/TAB ቅጥያ ያልታሰበ እርምጃ ያስነሳል (ቅጽን ቀድሞ ማስገባት፣ ሞዳል መዝጋት፣ መውጣት)
- ቅኝቱ የተዘገየ ወይም የተገደበ የግቤት አያያዝ እያንዳንዱን የቁልፍ ጫና ከሚመዘግብበት በበለጠ ፍጥነት ይከሰታል
የምርመራ የሥራ ሂደት
- በተመሳሳይ አሳሽ ውስጥ የቁልፍ ሰሌዳ ክስተት ሞካሪ ይክፈቱ እና ባርኮዱን ይቃኙ። እያንዳንዱ ቁምፊ እዚህ በትክክል ከተመዘገበ፣ አሳሹ እና ኦፕሬቲንግ ሲስተሙ ክስተቶችን በደንብ እየተቀበሉ ነው፣ ስለዚህ ስህተቱ በመተግበሪያዎ የክስተት አያያዝ ውስጥ ነው።
- በእውነተኛው የሥራ ሂደት ውስጥ ቅኝቱ ከመከሰቱ በፊት ወዲያው የግቤት መስክዎ ትኩረት እንዳለው ይፈትሹ (ለሙከራ በእጅ ሲጫኑት ብቻ አይደለም)።
- የአሳሽዎን DevTools ኮንሶል ይክፈቱ እና በቅኝቱ ወቅት የተጣሉ የJavaScript ስህተቶችን ይፈትሹ — በአያያዝ መካከል የተጣለ ስህተት ተጨማሪ የቁልፍ ጫናዎችን ማቀናበር በዝምታ ሊያቆም ይችላል።
- ግቤቱን የሚጥለውን ንብርብር ለመለየት ማንኛውንም የግቤት ጭምብል፣ ማረጋገጫ ወይም የዘገየ አመክንዮ ለጊዜው ያስወግዱ እና እንደገና ይሞክሩ።
- መተግበሪያዎ
keypress(የተወገደ እና ለአንዳንድ ቁልፎች አስተማማኝ ያልሆነ) እያዳመጠ መሆኑን፣keydown/keyupሳይሆን፣ ይፈትሹ።
እንዴት ማስተካከል እንደሚቻል
- የሥራ ሂደቱ ቅኝት በሚጠብቅበት ጊዜ ሁሉ ዒላማው መስክ በፕሮግራም ትኩረት እንደሚያገኝ ያረጋግጡ (ለምሳሌ የመስመር ንጥል ከተጨመረ በኋላ ወዲያው)
keypressአድማጮችን በkeydown/keyupይተኩ፣ ምክንያቱምkeypressየተወገደ እና አንዳንድ ቁልፎችን ወጥ ባልሆነ መንገድ ይይዛል- ሕጋዊ የቁምፊ ቁልፎችን እንዳያግዱ በቁልፍ ሰሌዳ አያያዦች ውስጥ ያሉ ማንኛውንም
preventDefault()ጥሪዎች ይገምግሙ - የባርኮድ ምልክት ሥርዓቶችዎ ሊያመነጩ የሚችሉትን ሙሉ የቁምፊ ክልል እንዲቀበሉ የግቤት ጭምብሎችን/ማረጋገጫን ያላላሉ፣ ከዚያ ነጠላ የቁልፍ ጫናዎችን ሳይሆን የተሰበሰበውን ዋጋ ያረጋግጡ
- የስካነሩን ቅጥያ ቅጽዎ ከሚጠብቀው ጋር ያዛምዱ (ይመልከቱ ENTER እና TAB ቅጥያዎች)