我希望能够通过手持扫描仪扫描条形码并使用Java处理结果。
条形码扫描仪的工作原理几乎就像键盘一样。它输出原始的扫描/翻译的(条形码->编号)数据(对吗?)。实际上,我只需要捕获输出并继续。但是如何?
这是我想做的一些伪代码:
$(document).on("scanButtonDown", "document", function(e) { // get scanned content var scannedProductId = this.getScannedContent(); // get product var product = getProductById(scannedProductId); // add productname to list $("#product_list").append("<li>" + product.name + "</li>"); });
提前致谢!
您的伪代码将不起作用,因为您无权使用扫描程序来捕获诸如之类的事件scanButtonDown。您唯一的选择是HID扫描仪,其行为与键盘完全相同。要区分扫描仪输入和键盘输入,您有两个选择:基于计时器或基于前缀。
scanButtonDown
基于计时器
扫描程序输入字符的速度可能比用户使用键盘输入字符的速度要快得多。计算接收按键的速度,并将快速输入缓冲到变量中以传递给getProductsId函数。@Vitall写了一个可重用的jQuery解决方案,用于捕获条形码扫描器的输入,您只需要捕获onbarcodescanned事件即可。
getProductsId
基于前缀
可以将大多数扫描仪配置为所有扫描数据的前缀。您可以使用前缀开始拦截所有输入,并且一旦获得条形码,就停止拦截输入。
全面披露 :我是Socket Mobile,Inc.的顾问,该公司生产手持式扫描仪。