【问题标题】:Scan only certain types of barcodes with Cordova BarcodeScanner使用 Cordova BarcodeScanner 仅扫描特定类型的条码
【发布时间】:2015-05-18 11:39:24
【问题描述】:

我正在尝试使用Cordova/Phonegap BarcodeScanner 并在从某个角度扫描条形码时遇到奇怪的行为。

假设我有一个EAN_13 类型的条形码并完全笔直地扫描它,我得到了正确的结果,但是当我转动相机并尝试从更差的角度扫描时,结果不再适合。我发现扫描结果的类型现在是EAN_8,甚至是UPC_E

我的问题是,我可以告诉我的条码扫描器只扫描某种类型的条码,这样就不会出现错误的结果吗?据我测试,使用应用商店中的条形码扫描仪应用时不会发生这种行为。在这里,要么我得到正确的结果,要么根本无法识别代码。

提前感谢任何帮助或提示。

【问题讨论】:

    标签: cordova phonegap-plugins barcode-scanner cordova-plugins


    【解决方案1】:

    scan 函数采用第三个参数,一个配置对象,其中包含作为附加值发送到 ZXing 的值。 ZXing 提供了两种启用/禁用条码格式的选项:SCAN_MODESCAN_FORMATS,其中 SCAN_MODE 是对常见格式组合的预设。

    cordova.plugins.barcodeScanner.scan(
       function (result) {
           alert("We got a barcode\n" +
                 "Result: " + result.text + "\n" +
                 "Format: " + result.format + "\n" +
                 "Cancelled: " + result.cancelled);
       }, 
       function (error) {
           alert("Scanning failed: " + error);
       },
       {
           // "SCAN_MODE": "PRODUCT_MODE",
           "SCAN_FORMATS": "EAN_13"
       }
    );
    

    您可以使用SCAN_MODESCAN_FORMATS,但不能同时使用。在您的情况下,您只能启用EAN_13 以防止误报匹配。

    【讨论】:

    • 谢谢 - 这似乎是我正在寻找的方式,但我无法让它与您的代码一起使用。将SCAN_FORMATS 设置为EAN_13 时,我仍然得到EAN_8 代码和其他代码的结果。是否有可用的文档显示如何正确使用配置对象以及允许哪些值?
    • 您在哪个平台上运行您的 Cordova 应用程序?
    • 目前在 iphone 6 上运行 ios 8.3,尚未在 android 设备上测试
    • 啊,配置对象可能只有Android。我只是简单地看了一下 Barcode Scanner 插件的 iOS 代码,它似乎使用第三个参数来传递自定义覆盖。
    • 这似乎也不起作用。我刚刚在 Android 5.1.1 设备上进行了测试,并且在使用以下命令调用扫描仪时仍然得到EAN_13EAN_8 条形码的结果:cordova.plugins.barcodeScanner.scan(success, error, {"SCAN_FORMATS": "EAN_13"});
    猜你喜欢
    • 2016-05-08
    • 2014-09-30
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    相关资源
    最近更新 更多