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

调用函数getPictures时,我不断收到此TypeError:


  [console.error] TypeError:无法读取的属性'getPictures'
  未定义


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

.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“控制台”
  cordova-plugin-device 1.1.1“设备”
  cordova-plugin-image-picker 1.0.8“ ImagePicker”
  cordova-plugin-splashscreen 3.1.0“启动画面”
  cordova-plugin-statusbar 2.1.1“ StatusBar”
  cordova-plugin-whitelist 1.2.1“白名单”
  ionic-plugin-keyboard 1.0.8“键盘”


而且我确保index.html中有ngCordova

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


怎么了?

最佳答案

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

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


读取:ngCordova plugin call

关于javascript - $ cordovaImagePicker不适用于 ionic 框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35905137/

10-13 00:24