首页 文章

cordova离子条码扫描器错误

提问于
浏览
1

我得到同样的错误

barcodescanner.js:130未捕获的ReferenceError:未定义require

ionic.bundle.js:20306 ReferenceError:未定义cordova

Cordova CLI:5.0.0 Gulp版本:CLI版本3.8.11 Gulp本地:本地版本3.8.11离子版本:1.0.0 Ionic CLI版本:1.4.3 Ionic App Lib版本:0.0.19 ios-deploy版本:未安装ios-sim版本:3.1.1操作系统:Mac OS X Mavericks节点版本:v0.12.2 Xcode版本:Xcode 6.1.1 Build版本6A2008a

我的index.html

<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>


<script src="js/ng-cordova.min.js"></script>
<script src="js/ng-cordova-mocks.min.js"></script>
<script src="js/barcodescanner.js"></script>

<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>

<!-- your app's js -->
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>

------ app.js包含-----------------

angular.module('starter', ['ionic', 'starter.controllers', 'ngCordova'])

------ controllers.js包含-------------------

angular.module('starter.controllers', ['ngCordova'])

.controller('AppCtrl', function($scope, $ionicModal, $timeout, $stateParams, $http, $cordovaBarcodeScanner) {

.......

$scope.scanBarcode = function() {
var scanner = cordova.plugins.BarcodeScanner;
if (scanner == undefined) {
scanner = cordova.require("cordova/plugin/BarcodeScanner");
}

scanner.scan()
    
        .then(function (imageData) {
    
                alert(imageData.text);
                console.log(imageData.format);
    
                // Success! Barcode data is here
    
             }, function (err) {
    
                 console.log(err);
    
                 // An error occurred
    
             });
    
    };

任何人都可以帮助我吗?

1 回答

  • 1

    如果您使用的是iOS模拟器,则无法测试此插件,因为模拟器不支持相机 . 因此,您需要使用真实设备来测试您的应用 .

    查看文档:Testing and Debugging in iOS Simulator

    UPDATE

    您的代码似乎有一些错误 . 试试这个例子,我没有测试但应该工作:

    调节器

    angular.module('starter.controllers', ['ngCordova'])
    
    .controller('AppCtrl', function($scope, $ionicModal, $timeout, $stateParams, $http, $cordovaBarcodeScanner) {
    
      $scope.scanBarcode = function(){
        $cordovaBarcodeScanner.scan().then(function(barcodeData) {
          // Success! Barcode data is here
          alert('barcode scanned:' +  barcodeData.text);
        }, function(error) {
          alert('Error')
          console.log(error);
          // An error occurred
        });      
      };
    
    });
    

    HTML:

    <ion-content>
      <ion-list>
        <ion-item ng-click="scanBarcode()">
          Scan Barcode
        </ion-item>
      </ion-list>
    </ion-content>
    

相关问题