PhoneGap中文网

 找回密码
 立即注册
查看: 46684|回复: 13
打印 上一主题 下一主题

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

[复制链接]

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
跳转到指定楼层
楼主
发表于 2016-3-4 09:23:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我按照官网的步骤添加扫码插件后,在页面添加一个按钮测试
<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);  
});

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

回复

使用道具 举报

15

主题

27

帖子

191

积分

注册会员

Rank: 2

积分
191
沙发
发表于 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);
    };
回复 支持 反对

使用道具 举报

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
板凳
 楼主| 发表于 2016-3-4 10:45:56 | 只看该作者
执笔丶续写繁华 发表于 2016-3-4 10:18
$scope.scanBarcode = function () {
      document.addEventListener("deviceready", function () {
...

我试了一下,还是一样,不知道是哪里出问题
回复 支持 反对

使用道具 举报

1

主题

8

帖子

41

积分

新手上路

Rank: 1

积分
41
地板
发表于 2016-3-7 14:21:24 | 只看该作者
不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入
回复 支持 反对

使用道具 举报

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
5#
 楼主| 发表于 2016-3-7 16:26:15 | 只看该作者
hxz 发表于 2016-3-7 14:21
不用注入对$cordovaBarcodeScanner的依赖,一般插件都不用注入

请问,能贴下代码吗?
回复 支持 反对

使用道具 举报

2

主题

5

帖子

54

积分

注册会员

Rank: 2

积分
54
6#
发表于 2016-3-9 16:24:06 | 只看该作者
我的插件也有这个问题!连续两次扫码!
回复 支持 反对

使用道具 举报

1

主题

5

帖子

43

积分

新手上路

Rank: 1

积分
43
7#
 楼主| 发表于 2016-3-10 12:46:27 | 只看该作者
qq422204838 发表于 2016-3-9 16:24
我的插件也有这个问题!连续两次扫码!

你找到解决的办法了吗?
回复 支持 反对

使用道具 举报

1

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
8#
发表于 2016-7-4 17:54:03 | 只看该作者
bigtall 发表于 2016-4-8 19:32
我的实现了,不过我没有用addEvenetListen

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

使用道具 举报

1

主题

8

帖子

33

积分

新手上路

Rank: 1

积分
33
9#
发表于 2016-7-8 16:48:59 | 只看该作者
开始调用扫描放在线程里面就行了,iOS上面打开相机在回到主线程,安卓不是特别清楚
回复 支持 反对

使用道具 举报

1

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
10#
发表于 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 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-12-5 03:20 , Processed in 0.092015 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表