我正在创建使用条形码扫描器的网络应用程序(在我的例子中是摩托罗拉 TC55)。
我的目标是在不使用 HTML 输入/文本区域的情况下扫描产品 EAN。为什么?因为我想防止在移动设备上弹出键盘。这个字段也应该可以在桌面上使用(没有连接扫描仪 - 从键盘输入数据)。
我尝试过的:
- 在输入上设置
readonly
/disabled 属性 - 移动键盘已隐藏,但我无法在此输入上设置焦点。 - 使用
contenteditable
指令创建div
- 键盘可见。 - 最后(迄今为止最复杂的)- 使用
onClick
事件创建div
。单击div
后,我开始收听keypress
并保存所有内容,直到按下Enter
键。它在桌面上运行良好。移动键盘是隐藏的,但keypress
事件仅在扫描结束时触发(Enter
键)。
还有什么建议吗?
最佳答案
免责声明:我为 Zebra Technologies 工作
因为你正在处理 Motorola (now Zebra Technologies) TC55 ,您有不同的选择。
最简单的是使用类似 Zebra's Enterprise Browser 的东西,它需要许可证,但它包含一些额外的 API,允许控制设备的额外硬件。特别是你有一个 Barcode API使您可以完全控制集成的条码扫描器。
如果您更喜欢使用需要更多手持的东西,您可以看看 this blog post that explain how to bridge between DataWedge (the application that on the Zebra Android devices is sending the barcode data as characters) and the Chrome Android Browser using WebSockets .
如果您有 TC55 的支持契约(Contract),您可以将您的设备更新到最新的安全更新和修复程序。您可以在 Zebra's Support Website 上找到更多信息.
关于javascript - Angular 2 - 在不使用 HTML 输入/文本区域的情况下获取条形码扫描器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47939931/