这是我的代码(它正常工作): document.addEventListener('deviceready', myDeviceReady, false);function myDeviceReady() { $('#Print').append('Device is ready'); function Scan() { try { $('#Print').append('Scanning') window.plugins.ba
document.addEventListener('deviceready', myDeviceReady, false); function myDeviceReady() { $('#Print').append('Device is ready'); function Scan() { try { $('#Print').append('Scanning') window.plugins.barcodeScanner.scan(mySuccess,myError); } catch (myCatch) { $('#Print').append('catch: ' + myCatch) Scan(); } } function mySuccess(result) { if (result.cancelled) { $('#Print').append('The user cancelled the scan.') } else { $('#Print').append(result.text); $('#Print').append(result.format); } Scan(); } function myError(error) { $('#Print').append('Scanning failed: ' + error); Scan(); } Scan(); }
问:有没有办法更快地轮询扫描仪?每次扫描都需要几秒钟,我的用户可以扫描大量的条形码.
他们曾经用楔子扫描到笔记本电脑,但他们现在想要使用iPad.
编辑:
也许我正在寻找的是第三方解决方案.
除非你的HTML很大(通过$(‘#Print’)获取DOM节点可能需要一些时间),或者你正在运行应用程序很长一段时间(在这种情况下.append可能会减慢,因为它是从未清除过),您的JavaScript代码没有任何问题.事实上,我假设延迟来自你的条形码插件,而不是你的JavaScript处理程序.在做任何其他事情之前,你应该检查我的假设是否为真,并且延迟实际发生在.barcodeScanner.scan()调用和mySuccess()/ myFailure()函数之间.
PhoneGap似乎使用的是ZXing(“Zebra Crossing”),这是一个既定的标准.如果这还不够快,您可能想尝试替代库:
> VisionSmarts VSbarcodeReader
> ZBar SDK
> ShopSavvy Barcode SDK
但可能是移动摄像头的自动对焦速度不足以满足您的要求,而且您需要基于激光的硬件. This link有许多与硬件接口的产品.