phonegap插件条形码扫描器,类型PDF417条形码使用离子



我对Ionic开发相当陌生,到目前为止还没有遇到太多问题。然而,我坚持试图让PDF417型条形码扫描(使用phonegap-plugin- barcodesscanner),尽管文档表明它们是通过在"格式"选项中传递"PDF_417"参数来支持的。注意:扫描工作在其他代码,如QR_CODE, EAN_13 -所以代码大多是正确的。我认为错误函数后的选项列表没有被处理。

  $cordovaBarcodeScanner.scan().then(function(imageData) {
    $scope.si_data_display = imageData.text;
    console.log("app.js :: .controller - MainCtrl :: scan_barcode :: text : " + imageData.text);
    console.log("app.js :: .controller - MainCtrl :: scan_barcode :: format : " + imageData.format);
    console.log("app.js :: .controller - MainCtrl :: scan_barcode :: cancelled  : " + imageData.cancelled);
  }, function(error) {
    //TODO: better error handling...
    alert("Error with BarcodeScanner" + error);
  },
  { //I DONT THINK THIS IS WORKING!
    "preferFrontCamera" : true, // iOS and Android
    "showFlipCameraButton" : true, // iOS and Android
    "prompt" : "zzzzzzzzzzzz", // supported on Android only
    "formats" : "PDF_417", // default: all but PDF_417 and RSS_EXPANDED
  });

任何帮助、建议和指示都将不胜感激。

提前谢谢你,Harold Clements

是的,你的代码写得很糟糕,你在$ cordoabarcodesscanner .scan()函数中有一个错误,因为它是一个承诺,因此它从返回两个callbackfunction。他们

方法

q.resolve(结果);

q.reject (err);

$ cordoabarcodescanner在一个工厂中返回两个函数

带有输入参数的函数

scan: function (config) {

和第二个带有两个输入参数的

编码:函数(类型、数据){}

都是promise函数

所以正确的请求方式是:

document.addEventListener("deviceready", function () {
$scope.scan= function () {
  $cordovaBarcodeScanner
    .scan({ //I KNOW THIS IS GOOD!
           "preferFrontCamera" : true, // iOS and Android
           "showFlipCameraButton" : true, // iOS and Android
           "prompt" : "zzzzzzzzzzzz", // supported on Android only
           "formats" : "PDF_417"  //NO ',' in the last element
          })
    .then(function (imageData) {
      $scope.si_data_display = imageData.text;
      alert(JSON.stringify(imageData));
    }, function (error) {
      $scope.result=" :( intentalo de nuevo. Ocurrio un Error"
      alert(Error);
    });
}
  /*
    try to use, but inject in your controller
    $ionicPlatform.ready(function() {
      $cordovaBarcodeScanner.scan().then(success, error);
    });
  */

在你的html

<button class="button" ng-click="scan()">Escanear</button>

查看ios库,它只包含以下类型的格式,因此它不适用于ios。如果你找到一些方法来扫描PDF417在ios使用IONIC,你可以分享!

typedef enum BarcodeFormat {
    BarcodeFormat_None = 0,
    BarcodeFormat_QR_CODE,
    BarcodeFormat_DATA_MATRIX,
    BarcodeFormat_UPC_E,
    BarcodeFormat_UPC_A,
    BarcodeFormat_EAN_8,
    BarcodeFormat_EAN_13,
    BarcodeFormat_CODE_128,
    BarcodeFormat_CODE_39,
    BarcodeFormat_ITF
} BarcodeFormat;

希望对大家有帮助

相关内容

  • 没有找到相关文章

最新更新