phonegap angularjs barcodescanner

时间:2016-05-03 00:13:17

标签: javascript angularjs cordova cordova-plugins

我在visual studio中有这个解决方案,我正在创建一个cordova项目。我还安装了ngCordova和phonegap-plugin-barcodescanner插件。

我注射了ngCordova并完成了这个功能:

$scope.scan = function() {

   $cordovaBarcodeScanner.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);
  });

};

但它失败了: cordova.plugins未定义

我错过了什么?

1 个答案:

答案 0 :(得分:1)

Cordova插件仅在真实设备或模拟器上运行。

scan()方法返回一个承诺:

$cordovaBarcodeScanner
  .scan()
  .then(function(barcodeData) {
    // Success! Barcode data is here
    console.log(barcodeData);
  }, function(error) {
    // An error occurred
    console.log(error);
  });

如果您想测试在浏览器中运行的应用,可以使用这样的模拟:

if (!window.cordova){
  window.cordova = {
    plugins: {
      barcodeScanner: {
        scan: function (success, error) {
          var code = window.prompt("Enter barcode value (empty value will fire the error handler):");
          if(code) {
            var result = {
              text:code,
              format:"Fake",
              cancelled:false
            };
            success(result);
          } else {
            error("No barcode");
          }
        }
      }
    }
  };
}