科尔多瓦离子条形码扫描仪错误
cordova ionic barcode scanner error
我遇到同样的错误
barcodescanner.js:130 未捕获的 ReferenceError: require 未定义
ionic.bundle.js:20306 ReferenceError: cordova 未定义
Cordova CLI:5.0.0
Gulp 版本:CLI 版本 3.8.11
Gulplocal:本地版本3.8.11
离子版本:1.0.0
离子 CLI 版本:1.4.3
离子应用程序库版本:0.0.19
ios-部署版本:未安装
ios-模拟版本:3.1.1
OS: Mac OS X 小牛队
节点版本:v0.12.2
Xcode 版本:Xcode 6.1.1 构建版本 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
});
};
有人可以帮我吗?
如果您使用的是 iOS 模拟器,则无法测试此插件,因为模拟器不支持摄像头。所以你需要使用真实的设备来测试你的应用程序。
查看文档:
Testing and Debugging in iOS Simulator
更新
您的代码似乎有一些错误。
试试这个例子,我还没有测试过但应该可以工作:
控制器
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>
我遇到同样的错误
barcodescanner.js:130 未捕获的 ReferenceError: require 未定义
ionic.bundle.js:20306 ReferenceError: cordova 未定义
Cordova CLI:5.0.0 Gulp 版本:CLI 版本 3.8.11 Gulplocal:本地版本3.8.11 离子版本:1.0.0 离子 CLI 版本:1.4.3 离子应用程序库版本:0.0.19 ios-部署版本:未安装 ios-模拟版本:3.1.1 OS: Mac OS X 小牛队 节点版本:v0.12.2 Xcode 版本:Xcode 6.1.1 构建版本 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
});
};
有人可以帮我吗?
如果您使用的是 iOS 模拟器,则无法测试此插件,因为模拟器不支持摄像头。所以你需要使用真实的设备来测试你的应用程序。
查看文档: Testing and Debugging in iOS Simulator
更新
您的代码似乎有一些错误。 试试这个例子,我还没有测试过但应该可以工作:
控制器
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>