2016-01-12 24 views
7

Voglio recuperare la galleria completa di un dispositivo mobile per mostrarli in una griglia personalizzata, è possibile? In questo momento sto usando $cordovaImagePicker che mi sta reindirizzando alla galleria e poi, dopo aver selezionato l'immagine, ottengo l'Uri di quell'immagine. Invece di ciò voglio che le immagini complete della galleria siano selezionate automaticamente.Come recuperare tutte le immagini della galleria del cellulare usando cordova?

Controller

$scope.getImageFromGallery = function() { 
    // Image picker will load images according to these settings 
    var options = { 
     maximumImagesCount: 1, // Max number of selected images, I'm using only one for this example 
     width: 800, 
     height: 800, 
     quality: 80 // Higher is better 
    }; 

    $cordovaImagePicker.getPictures(options).then(function(results) { 
     // Loop through acquired images 
     for (var i = 0; i < results.length; i++) { 
      alert(results); 
      $scope.image = results[i]; 
      // Print image URI 
     } 
    }, function(error) { 
     console.log('Error: ' + JSON.stringify(error)); // In case of error 
    }); 
} 
+0

ios? Android? entrambi? – jcesarmobile

+0

sì, anche per IOS e Android e Windows :) – mayank

+0

Domanda senza risposta simile: http://stackoverflow.com/questions/28997384/cordova-phonegap-photo-browser – daserge

risposta

4

il modo più semplice per farlo è quello di utilizzare cordova-gallery-api plug-in, fare riferimento al seguente esempio:

galleryAPI.getAlbums(function(items) 
{ 
    var html = ""; 

    for(var i = 0; i < items.length; i++) 
    { 
     var album = items[i]; 

     html += '<a href="javascript:loadAlbum(\'' + album.title + '\')" class="album"><span>' + escape(album.title) + '</span></a>'; 
    } 

    $content.innerHTML = html; 

}, function(error){alert(error);}); 

window.loadAlbum = function(albumName) 
{ 
    galleryAPI.getMedia(albumName, function(items) 
    { 
     var html = ""; 

     for(var i = 0; i < items.length; i++) 
     { 
      var media = items[i]; 

      html += '<a href="javascript:void()" class="media"><img src="file://' + media.thumbnail + '" /></a>'; 
     } 

     $content.innerHTML = html; 

    }, function(error){alert(error);}); 
}; 
1

Aggiungi this plug-in,

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

controller

$scope.images = []; 
$scope.selectImages = function() { 
    $cordovaImagePicker.getPictures(
     function(results) { 
      for (var i = 0; i < results.length; i++) { 
       $scope.images.push(results[i]); 
      } 
      if (!$scope.$$phase) { 
       $scope.$apply(); 
      } 
     }, 
     function(error) { 
      console.log('Error: ' + error); 
     } 
    ); 
}; 

Html

<div class="row responsive-md"> 
    <div class="col col-25" ng-repeat="image in images"> 
     <img ng-src="{{image.src}}" width="100%" /> 
    </div> 
</div> 

Tutorial