当前位置 : 主页 > 手机开发 > cordova >

cordova – Phonegap条形码扫描更快

来源:互联网 收集:自由互联 发布时间:2021-06-10
这是我的代码(它正常工作): 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有许多与硬件接口的产品.

网友评论