我将$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上,因此很难调试。我可能需要在代码中添加一些额外的东西吗?
答案 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);
});
}
};