Android TypeError:无法读取属性';getPictures';未定义的
这是一款ionic应用程序,在同一控制器中具有$cordovaImagePicker和$cordovaCamera功能,并且都是从同一reservation.html调用的 这是控制器定义:Android TypeError:无法读取属性';getPictures';未定义的,android,cordova,ionic-framework,Android,Cordova,Ionic Framework,这是一款ionic应用程序,在同一控制器中具有$cordovaImagePicker和$cordovaCamera功能,并且都是从同一reservation.html调用的 这是控制器定义: .controller('AppCtrl', ['$scope', '$timeout', '$ionicModal', '$localStorage', '$cordovaCamera', '$ionicPlatform', '$cordovaImagePicker', function($scope,
.controller('AppCtrl', ['$scope', '$timeout', '$ionicModal', '$localStorage', '$cordovaCamera', '$ionicPlatform', '$cordovaImagePicker', function($scope, $timeout, $ionicModal, $localStorage, $cordovaCamera, $ionicPlatform, $cordovaImagePicker){
我使用爱奥尼亚插件添加cordova插件imagepicker安装了$cordovaImagePicker
,使用爱奥尼亚插件添加cordova插件摄像头安装了$cordovaCamera
这是控制器代码:
$ionicPlatform.ready(function() {
var options1 = {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};
$scope.takePicture = function() {
$cordovaCamera.getPicture(options1).then(function(imageData) {
$scope.registration.imgSrc = "data:image/jpeg;base64," + imageData;
}, function(err) {
console.log(err);
});
$scope.registerform.show();
};
var options2 = {
maximumImagesCount: 1,
width: 800,
height: 800,
quality: 80
};
$scope.getPicture = function() {
$cordovaImagePicker.getPictures(options2).then(function (results) {
for (var i = 0; i < results.length; i++) {
console.log('Image URI: ' + results[i]);
$scope.registration.imgSrc = results[i];
}
}, function(error) {
// error getting photos
console.log(error);
});
};
});
}])
$ionicPlatform.ready(函数(){
变量选项1={
质量:50,
destinationType:Camera.destinationType.DATA\u URL,
源类型:Camera.PictureSourceType.Camera,
允许:是的,
编码类型:Camera.encodingType.JPEG,
目标宽度:100,
目标:100,
popoverOptions:CamerapoverOptions,
saveToPhotoAlbum:false
};
$scope.takePicture=函数(){
$cordovaCamera.getPicture(选项1)。然后(函数(imageData){
$scope.registration.imgSrc=“数据:图像/jpeg;base64,”+imageData;
},函数(err){
控制台日志(err);
});
$scope.registerform.show();
};
var选项2={
最大值:1,
宽度:800,
身高:800,
品质:80
};
$scope.getPicture=函数(){
$cordovaImagePicker.getPictures(选项2)。然后(函数(结果){
对于(var i=0;i
我正在安卓5手机上运行该应用程序。
拍照功能工作正常。
getPicture函数不起作用
devTools控制台显示:
TypeError: Cannot read property 'getPictures' of undefined
at Object.getPictures (file:///android_asset/www/lib/ngCordova/dist/ng-cordova.js:4420:28)
at Scope.$scope.getPicture (file:///android_asset/www/js/controllers.js:132:37)
at fn (eval at <anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:26457:15), <anonymous>:4:221)
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62386:9
at Scope.$eval (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29158:28)
at Scope.$apply (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29257:23)
at HTMLButtonElement.<anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62385:13)
at HTMLButtonElement.eventHandler (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16583:21)
at triggerMouseEvent (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2948:7)
at tapClick (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2937:3)
TypeError:无法读取未定义的属性“getPictures”
在Object.getPictures(file:///android_asset/www/lib/ngCordova/dist/ng-cordova.js:4420:28)
在作用域中。$Scope.getPicture(file:///android_asset/www/js/controllers.js:132:37)
fn时(评估时)(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:26457:15), :4:221)
在file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62386:9
在范围内。$eval(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29158:28)
在范围内。$apply(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29257:23)
在HTMLButtoneElement。(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62385:13)
在HtmlButtoneElement.eventHandler(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16583:21)
在三角洲事件中(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2948:7)
点击(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2937:3)
错误似乎是说getPictures在scope.scope.getPicture的范围内,但代码不是这样组织的。
我已尝试卸载并重新安装$cordovaImagePicker,但没有任何更改。经过数小时的搜索,我找到了此链接 并重新安装了具有以下内容的imagePicker: 爱奥尼亚插件添加-保存
现在它可以正常工作了。我想说,
$cordovaCamera
在您尝试调用gefPictures()
方法时没有定义。您检查过注入是否正常工作了吗?当我单击第一个错误时,它指向$window.imagePicker.getPictures(函数)中.getPictures()的开头,$cordovaCamera工作正常。