phonegap-plugin-barcodescanner,使用离子键入PDF417条形码

时间:2016-11-11 14:11:57

标签: cordova ionic-framework pdf417

我对Ionic开发相当新,到目前为止还没有遇到太多问题。但是,尽管文档建议通过" 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
  });

将非常感激地收到任何帮助,建议或指示。

提前谢谢你, 哈罗德克莱门茨

1 个答案:

答案 0 :(得分:1)

是的,您编写的代码写得很糟糕,$ cordovaBarcodeScanner.scan()函数中有错误,因为它是一个promise,因此它从 .them 方法返回两个callbackFuntion

q.resolve(结果);

q.reject(ERR);

$ CordovaBarcodeScanner是一个返回两个功能的工厂

具有输入参数的函数

扫描:功能(配置){

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

编码:功能(类型,数据){}

bouth是承诺的功能

所以提出请求的正确方法是:

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。如果你找到一些使用IONIC在ios中扫描PDF417的方法,你可以分享它!

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;

我希望它对每个人都有用