林德耀 发表于 2016-3-4 09:23:38

Ionic 用ngCordova添加扫码插件遇到的问题,请大神求解

我按照官网的步骤添加扫码插件后,在页面添加一个按钮测试
<button class="button" ng-click="scanBarcode()">Scan</button>
Controller如下:
.controller('myCtrl', function($scope,$cordovaBarcodeScanner) {
    document.addEventListener("deviceready", function () {      
      $scope.scanBarcode = function(){
            $cordovaBarcodeScanner
            .scan()
            .then(function(barcodeData) {
                  console.log("barcodeData=="+barcodeData);
            }, function(error) {
                  console.log("error=="+error);
            });
      }
      }, false);
});

点击按钮时,能进行扫码,但是扫描完成后,没有跳回页面,而是又一次扫码。我怀疑就是设备还没加载完成时,它就启动了,导致了两次扫描,请问有谁遇到过这种情况吗,求解决的办法,多谢。

执笔丶续写繁华 发表于 2016-3-4 10:18:42

    $scope.scanBarcode = function () {
      document.addEventListener("deviceready", function () {
      $cordovaBarcodeScanner.scan().then(function (barcodeData) {
            alert(barcodeData.text);
            // Success! Barcode data is here
          }, function (error) {
            // An error occurred
          });

      // NOTE: encoding not functioning yet
      $cordovaBarcodeScanner
          .encode(BarcodeScanner.Encode.TEXT_TYPE, "http://www.nytimes.com")
          .then(function (success) {
            // Success!
          }, function (error) {
            // An error occurred
          });
      }, false);
    };

林德耀 发表于 2016-3-4 10:45:56

执笔丶续写繁华 发表于 2016-3-4 10:18
$scope.scanBarcode = function () {
      document.addEventListener("deviceready", function () {
...

我试了一下,还是一样,不知道是哪里出问题

hxz 发表于 2016-3-7 14:21:24

不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入

林德耀 发表于 2016-3-7 16:26:15

hxz 发表于 2016-3-7 14:21
不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入

请问,能贴下代码吗?

qq422204838 发表于 2016-3-9 16:24:06

我的插件也有这个问题!连续两次扫码!

林德耀 发表于 2016-3-10 12:46:27

qq422204838 发表于 2016-3-9 16:24
我的插件也有这个问题!连续两次扫码!

你找到解决的办法了吗?

yangzonglong 发表于 2016-7-4 17:54:03

bigtall 发表于 2016-4-8 19:32
我的实现了,不过我没有用addEvenetListen

同样遇到这个问题,2次打开扫描界面 ,请问怎么解决的?

米兰的小铁匠 发表于 2016-7-8 16:48:59

开始调用扫描放在线程里面就行了,iOS上面打开相机在回到主线程,安卓不是特别清楚

yangzonglong 发表于 2016-7-20 17:24:44

.controller('HomeCtrl', function($scope, $cordovaBarcodeScanner) {
$scope.scanBarcode = function() {
    $cordovaBarcodeScanner.scan().then(function(result) {

      // alert("We got a barcode\n" +
      //   "Result: " + result.text + "\n" +
      //   "Format: " + result.format + "\n" +
      //   "Cancelled: " + result.cancelled);
    }, function(error) {
      alert("An error happened -> " + error);
    });
}
})
页: [1] 2
查看完整版本: Ionic 用ngCordova添加扫码插件遇到的问题,请大神求解