Cordova`barcodeScanner`将结果返回给控制器

时间:2016-02-26 10:39:36

标签: angularjs cordova cordova-plugins

我使用cordovaangular.js中编写了一个应用程序。

在角度控制器中,我从工厂调用扫描方法,该扫描方法应该扫描QR码并将结果返回给控制器。

下面的代码设法开始扫描插件,但不会将结果返回给控制器。

这里最好的方法是什么?

谢谢:-)

app.controller("LoggerController", ["$scope", "$location", qrReaderFactory", "$window", function ($scope, $location, qrReaderFactory, $window) {
    $scope.$on('$viewContentLoaded', function () {
        qrReaderFactory.scan("logger").then(function (result) {
            $window.alert("We got a barcode\n" +
                "Result: " + result.text + "\n" +
                "Format: " + result.format + "\n" +
                "Functionality: " + functionality + "\n" +
                "Cancelled: " + result.cancelled);
    },
        function (error) {                
            $window.alert("Scanning failed: " + error);
        }
    );
});             

}]);  

app.factory("qrReaderFactory", ["$http", "$q", "$window", function ($http, $q, $window) {
    function scan(functionality) {
        var deferred = $q.defer();

        cordova.plugins.barcodeScanner.scan(
            function (result) {
                deferred.resolve(result);
            },
            function (error) {
                deferred.reject(error);

            }
        );
        return deferred.promise;

    }
}

1 个答案:

答案 0 :(得分:0)

抱歉,我的错误。

它实际上工作正常。

问题出在"Functionality: " + functionality + "\n" +行,其中未分配“功能”。