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

相關問題