离子$ cordovaBarcodeScanner相机冻结在iPhone上

时间:2016-02-18 14:22:12

标签: cordova ionic-framework cordova-plugins

我将$cordovaBarcodeScannerSource实现为这样的离子应用程序:

    .controller('FoobarController', function($scope, $cordovaBarcodeScanner, 
$http, $ionicPlatform) {

      $scope.scanQR = function() {
        $ionicPlatform.ready(function() {
          $cordovaBarcodeScanner.scan().then(function(imageData) {
              alert(imageData.text);
          }, function(error) {
              console.log("An error happened -> " + error);
          });
        });
      };

只需使用此按钮调用它:<button ng-click="scanQR()">scan</button>

一切正常,但插件会在打开相机应用程序时导致冻结。

当我单击按钮时,它会打开相机并冻结相机中的图像。你必须取消它,重新打开它,希望它能工作。总是有效的是切换到前置摄像头并返回后置摄像头。 它有时只出现在iPhone上,因此很难调试。我可能需要在代码中添加一些额外的东西吗?

1 个答案:

答案 0 :(得分:1)

也许你的按钮(出于一些神奇的原因)按了两次。请尝试以下方法:

.controller('FoobarController', function($scope, $cordovaBarcodeScanner, $http) {
  $scope.currentlyScanning = false;
  $scope.scanQR = function() {
      if(!$scope.currentlyScanning) {
      $scope.currentlyScanning = true;
        $cordovaBarcodeScanner.scan().then(function(imageData) {
            $scope.currentlyScanning = false;
            alert(imageData.text);
        }, function(error) {
            $scope.currentlyScanning = false;
            console.log("An error happened -> " + error);
        });
      }
  };