PhoneGap中文网

标题: Ionic 用ngCordova添加扫码插件遇到的问题,请大神求解 [打印本页]

作者: 林德耀    时间: 2016-3-4 09:23
标题: 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
    $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
执笔丶续写繁华 发表于 2016-3-4 10:18
$scope.scanBarcode = function () {
      document.addEventListener("deviceready", function () {
...

我试了一下,还是一样,不知道是哪里出问题
作者: hxz    时间: 2016-3-7 14:21
不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入
作者: 林德耀    时间: 2016-3-7 16:26
hxz 发表于 2016-3-7 14:21
不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入

请问,能贴下代码吗?
作者: qq422204838    时间: 2016-3-9 16:24
我的插件也有这个问题!连续两次扫码!
作者: 林德耀    时间: 2016-3-10 12:46
qq422204838 发表于 2016-3-9 16:24
我的插件也有这个问题!连续两次扫码!

你找到解决的办法了吗?
作者: yangzonglong    时间: 2016-7-4 17:54
bigtall 发表于 2016-4-8 19:32
我的实现了,不过我没有用addEvenetListen

同样遇到这个问题,2次打开扫描界面 ,请问怎么解决的?
作者: 米兰的小铁匠    时间: 2016-7-8 16:48
开始调用扫描放在线程里面就行了,iOS上面打开相机在回到主线程,安卓不是特别清楚
作者: yangzonglong    时间: 2016-7-20 17:24
.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);
    });
  }
})
作者: yangzonglong    时间: 2016-7-20 17:25
我这样写的 没问题
作者: FallenLeaves    时间: 2017-11-22 09:49
你好,为什么我测试就没有用呢,点击扫描按钮都没效果,是我的sdk没有最新版本的问题么?
作者: 缘来了    时间: 2018-1-28 12:43


这个教程里面有讲扫描二维码的亲们

https://www.itying.com/goods-460.html
1. Ionic3、Ionic4.x、Cordova 调用原生硬件Api 扫描二维码 条形码 -ZBar

2 Ionic3、Ionic4.x、Cordova 调用原生硬件Api 扫描二维码 条形码-Barcode Scanner





作者: zhuyongqin2    时间: 2018-2-2 09:43
FallenLeaves 发表于 2017-11-22 09:49
你好,为什么我测试就没有用呢,点击扫描按钮都没效果,是我的sdk没有最新版本的问题么? ...

我也是这样写的,点击按钮没有任何效果。不知道为什么




欢迎光临 PhoneGap中文网 (http://bbs.phonegap100.com/) Powered by Discuz! X3.2