1

我遇到的问题是Image Picker ngCordova插件在我的离子应用程序中工作。每次我在Android(在我的设备和模拟器中)调用函数getPictures()时,应用程序都会崩溃。该功能在模拟器中的IOS上运行,但不在IOS设备上运行。我曾尝试卸载并重新安装该插件,甚至还制作了一个示例Hello World应用程序,以查看是否有来自我的原始项目的东西与其混淆。但是,这并没有奏效。

我不断收到这类型错误时,我调用该函数getPictures

[console.error] TypeError: Cannot read property 'getPictures' of undefined

这里是我的控制,我复制并从该网站粘贴:

.controller('ThisCtrl', ['$scope', '$cordovaImagePicker', function($scope, $cordovaImagePicker) { 

$scope.getImages = function() { 

    var options = { 
    maximumImagesCount: 10, 
    width: 800, 
    height: 800, 
    quality: 80 
    }; 

    $cordovaImagePicker.getPictures(options) 
    .then(function (results) { 
     for (var i = 0; i < results.length; i++) { 
     console.log('Image URI: ' + results[i]); 
     } 
    }, function(error) { 
     // error getting photos 
    }); 

    } 
}]) 

而且我安装的插件:

cordova-plugin-console 1.0.2 "Console"
cordova-plugin-device 1.1.1 "Device"
cordova-plugin-image-picker 1.0.8 "ImagePicker"
cordova-plugin-splashscreen 3.1.0 "Splashscreen"
cordova-plugin-statusbar 2.1.1 "StatusBar"
cordova-plugin-whitelist 1.2.1 "Whitelist"
ionic-plugin-keyboard 1.0.8 "Keyboard"

我确信我在我的index.html中有ngCordova

<script src="lib/ngCordova/dist/ng-cordova.js"></script> 
<script src="cordova.js"></script> 

怎么回事?

+0

你能在app.js文件注入ngCordova ??? [ngCordova](http://ngcordova.com/docs/install/) –

+0

我已将ngCordova注入到我的app.js文件中。 'angular.module('starter',['ionic','ngCordova'])'。 – Rarepuppers

+0

我正在尝试重现此问题;我建议试着确保你的app.js和controllers.js看起来和这一样:https://github.com/Jewelbots/ble-demo-app/blob/master/app/scripts/app.js错误告诉我,无论出于何种原因,该插件未加载。如果你安装了多个版本的插件(Cordova讨厌这个),这可能会发生,如果你在尝试使用它之前不是'deviceReady',也会发生这种情况。正如我所说,我会试着重现这一点,并让你知道它是如何发生的。 –

回答

0

您的设备在您调用插件时可能尚未准备好。尝试在Cordova的deviceready事件或$ionicPlatform.ready(function() {});事件中包装插件调用。它可以确保设备完全加载,并且在拨打电话之前插件可用。

document.addEventListener("deviceready", function() { 
    $cordovaPlugin.someFunction().then(success, error); 
}, false); 

阅读:ngCordova plugin call

相关问题