使用Cordova BarcodeScanner仅扫描某些类型的条形码

时间:2015-05-18 11:39:24

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

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

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

我的问题是,我可以告诉我的条形码扫描器只扫描某种类型的条形码,这样就不会出现错误的结果吗?据我测试过,当从应用商店使用条形码扫描器应用程序时,不会发生这种行为。在这里,我得到了正确的结果,或者根本没有识别出任何代码。

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

1 个答案:

答案 0 :(得分: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以防止误报匹配。