将条形码扫描到Web应用程序的文本框中

时间:2014-09-26 14:37:58

标签: java gwt barcode-scanner

我正在开发基于Web的Java应用程序(GWT用于我的UI)。 我有一个仓库管理系统。我需要扫描条形码并在文本框中显示它们。 我知道扫描仪会发送键盘事件。如何捕获这些事件并将其填充到我的文本框中?扫描条形码时光标是否应该放在文本框上?

有人可以提供如何捕获这些事件并填充在文本框中的代码片段吗?

请注意,这需要适用于不同的操作系统和浏览器。 这适用于笔记本电脑/台式机。它不适用于移动应用。

3 个答案:

答案 0 :(得分:0)

如果扫描条形码是该页面的默认操作,我建议将光标焦点设置在输入文本框上,然后您可以使用文本框上的KeyPressHandler截取扫描仪的控制字符(如果设置为关闭)每次扫描后都有一个回车换行符(输入键)。

This 可能是一个开始寻找的地方。

快速搜索一个示例,提出了一个好的here

答案 1 :(得分:0)

由于您无法区分扫描仪和键盘事件,只需关注文本框并等待输入。请务必设置扫描仪,以便之后发送TAB,而不是ENTER。

答案 2 :(得分:0)

根据您的扫描仪,可以对其进行编程,以便在实际条形码之前发送预定义的前缀。例如,我正在使用的扫描仪Honeywell Voyager 95X0可以配置为在每个条形码之前传输Start of TeXt (ASCII 02H)(请参阅配置指南的第Chapter 8, page 42页)。然后,您可以使用该前缀过滤掉来自扫描仪的KeyPressEvents(然后将输入移动到文本框),以及来自用户的那些。

设置"全球" KeyPressHandler(以便用户在扫描条形码之前不必记住要对焦文本框)应该是微不足道的 - 例如,参见this thread。关键点是使用Event.addNativePreviewHandler在事件被触发之前捕获事件。

相关问题