【问题标题】:zxing continuous scanning - iphonezxing 连续扫描 - iphone
【发布时间】:2011-06-23 01:49:57
【问题描述】:

我已将 zxing 库集成到我的应用程序中,但我的部分要求是能够持续扫描 QR 码。 通过关闭并重新呈现 zxing 小部件,我已经在一定程度上实现了这一点,但它对我的客户来说似乎太慢了。 还有其他方法可以重置小部件以再次开始扫描吗?

【问题讨论】:

    标签: iphone reset zxing


    【解决方案1】:

    您将不得不篡改 ZXing 库,幸运的是这并不难。

    在 ZXingWidgetController 中添加如下方法

    在 ZXingWidgetController.h 中

    - (void)reset;
    

    在ZXingWidgetController.m中

    - (void)reset
    {
        decoding = YES;
        [overlayView setPoints:nil];
        wasCancelled = NO;
    }
    

    现在,在您的 ZXing 委托中,编辑以下方法

    - (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result
    {
        //Handle your result as you want to
    
        [controller reset];
    }
    

    确保您不要调用[self dismissModalViewControllerAnimated:NO];,因为它会删除扫描视图。

    【讨论】:

    • 谢谢,这对我很有帮助!
    【解决方案2】:

    为什么不尝试另一个很棒的库 ZBar - http://zbar.sourceforge.net/
    它很容易,总是为我工作!如果您在应用中扫描二维码,您必须查看一下。

    【讨论】:

    • ZBar 不支持较新的带摄像头的 iPod Touch,也不支持 iPhone 3g,无论图像多么清晰。 (或者我上次尝试时没有。)这就是我切换到 zxing 的原因。 zbar 还有一个更严格的许可证,这可能是个问题。
    • @geon,ZBar 上的许可证是 LGPL 2.1,可以在应用商店使用(根据他们的常见问题解答)但是用户有权为您请求目标文件应用程序,以便他们可以重新编译它。不好!