2015-06-03 15 views
7

Jeśli utworzyć prosty projekt:Jak wybrać wiele zdjęć z urządzenia?

ionic start MyApp 

i dodać ImagePicker wtyczki:

ionic plugin add https://github.com/wymsee/cordova-imagePicker.git -save 

I po prostu skopiować this example www folder do projektu i zrobić:

ionic platform add android 
ionic build android 
ionic run android 

Wszystko działa bez zarzutu . Mogę wybrać wiele obrazów zgodnie z przeznaczeniem bez żadnych błędów.

Jak dotąd tak dobrze. Teraz próbowałem włączyć to do mojego projektu, więc dodałem wtyczkę ImagePicker. Teraz to jest moja lista plugin:

ionic plugin ls 
com.synconset.imagepicker 1.0.6 "ImagePicker" 
cordova-plugin-camera 1.1.0 "Camera" 
cordova-plugin-device 1.0.0 "Device" 
cordova-plugin-dialogs 1.1.0 "Notification" 
cordova-plugin-splashscreen 2.0.0 "Splashscreen" 
cordova-plugin-statusbar 1.0.0 "StatusBar" 
cordova-plugin-vibration 1.1.0 "Vibration" 
cordova-plugin-whitelist 1.0.0 "Whitelist" 

stworzyłem nowy moduł:

angular.module('App.ImageSelect', []) 

.config(function ($stateProvider, $urlRouterProvider) { 
    $stateProvider.state('app.imageSelect', { 
     url: "/products/prints/pola/imageSelect", 
     views: { 
      'menuContent': { 
       templateUrl: "modules/products/prints/pola/imageSelect/imageSelect.html", 
       controller: 'ImageSelectController' 
      } 
     } 
    }); 
}) 

.controller('ImageSelectController', function ($scope, $cordovaImagePicker) { 
    $scope.images = []; 

    $scope.selectImages = function() { 
     $cordovaImagePicker.getPictures(
      function (results) { 
       for (var i = 0; i < results.length; i++) { 
        console.log('Image URI: ' + results[i]); 

        $scope.images.push(results[i]); 
       } 

       if (!$scope.$$phase) { 
        $scope.$apply(); 
       } 
      }, 
      function (error) { 
       console.log('Error: ' + error); 
      } 
     ); 
    }; 
}); 

Jak widać jest to dokładnie ten sam kontroler, który skopiowałem z here który pracował na prostym projekcie badawczym.

Dla każdego podejrzanego powodu NIE działa. Zawsze pojawia się błąd:

TypeError: Cannot read property 'getPictures' of undefined 

Jaki jest tego sens? Im przy użyciu EXACT ten sam kod w obu projektach. W jednym wszystko działa, w drugim nic nie działa. Próbowałem wszystkich przykładów opisanych here, ale zawsze było to samo.

+0

Czy aplikacja została udostępniona w manifeście? – QueryLars

+1

Od wersji 3.0 nigdy nie musisz edytować tego ręcznie. wszystko jest generowane automatycznie – Mulgard

+0

Czy dodałeś wtyczkę 'cordova-imagePicker'? Jeśli tak, usuń i zainstaluj ponownie. Właśnie sprawdziłem moją aplikację testową i wtyczka działa poprawnie na iOS, może pobrać 5 dowolnych obrazów. Sprawdzanie w Androidzie ... – Tamal

Odpowiedz

5

Sprawdziłem Twój projekt i brakuje pliku index.html cordova.js. Więc żadna z wtyczek nie jest ładowana ani inicjowana. Po prostu dodaj poniższą linię w swoim index.html poniżej, gdzie ładujesz ng-cordova.js.

<script src="cordova.js"></script> 
+2

wow ... to było najbardziej oczywiste i nie widziałem tego po 3 dniach. Dziękuję Ci bardzo. – Mulgard

0

Na twoim przykładzie wstrzyknięto $cordovaCamera, jednak ikoniczny używa $cordovaImagePicker. Również w twoim przykładzie używasz obiektu imagePicker z obiektu window. Nie chcę obiektu window.

Spróbuj wstrzyknąć poprawną zależność $cordovaImagePicker i zamiast tego użyj metody $cordovaImagePicker.getPictures.

+0

@ Mulgard: ThiagoPXP ma rację. Spróbuj użyć ngCordova i wpisz '$ cordovaImagePicker', a następnie użyj' $ cordovaImagePicker'. Odnośnik [tutaj] (http://ngcordova.com/docs/plugins/imagePicker/). – LeftyX

Powiązane problemy