Phonegap – Elija la imagen de la galería

¿Puede alguien decirme, o señalarme en la dirección de cómo obtener una imagen de la galería de imágenes del teléfono en Phonegap / Android? Hay documentos sobre el acceso a la cámara (que funciona muy bien), pero no seleccionar una imagen existente.

Estoy buscando Phonegap / Javascript en lugar de Java.

¡Gracias por adelantado!

Erm, los documentos de la Camera cubren. ¿Esto no funciona para usted? Vea Camera.PictureSourceType para más detalles. El sitio docs da este ejemplo para derivar una imagen así:

 function getPhoto(source) { // Retrieve image file location from specified source navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType: destinationType.FILE_URI, sourceType: source }); } 

sourceType es el bit crucial aquí. Puede ser Camera.PictureSourceType.CAMERA (el valor por defecto), o más útil para usted puede ser Camera.PictureSourceType.PHOTOLIBRARY o Camera.PictureSourceType.SAVEDPHOTOALBUM .

Documentación de la cámara

También puede usar la siguiente biblioteca: https://github.com/wymsee/cordova-imagePicker Prefiero este ya que es más pequeño, fácil de implementar y no requiere permiso para la cámara.

Echa un vistazo a este post , puede ayudarte.

A veces, puede tener algún problema con la carga de una imagen existente. La solución es simple, por esta respuesta . En pocas palabras, es necesario convertir el URI de Android nativo a uno que la API pueda utilizar:

 // URL you are trying to upload from inside gallery window.resolveLocalFileSystemURI(img.URI, function(entry) { console.log(entry.fullPath); }, function(evt){ console.log(evt.code); } ); 
 document.addEventListener("deviceready",function(){ window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ var sdcard = fileSystem.root; sdcard.getDirectory('dcim/camera',{create:false}, function(dcim){ var directoryReader = dcim.createReader(); directoryReader.readEntries(function(entries){ for (var i=0; i<entries.length; i++) { entries[i].file(function(f){ var reader = new FileReader(); reader.onloadend = function (evt) { var url= evt.target.result;//base64 data uri console.log(url) reader.abort(); }; reader.readAsDataURL(f); },function(error){ console("Unable to retrieve file properties: " + error.code); }); } },function(e){ console.log(e.code); }); }, function(error){ console.log(error.code); }); }, function(evt){ // error get file system console.log(evt.target.error.code); }); } , true); 

Estoy trabajando en cordova-plugin-photo-library plugin que proporciona la forma de multiplataforma para enumerar a través de todas las fotos en el dispositivo.

Uso:

 cordova.plugins.photoLibrary.getLibrary(function (library) { // Here we have the library as array cordova.plugins.photoLibrary.getThumbnailUrl(library[0], function (thumbnailUrl) { image.src = thumbnailUrl; }, function (err) { console.log('Error occured'); }, { thumbnailWidth: 512, thumbnailHeight: 384, quality: 0.8 }); }); 
  • ¿Cómo detectar automáticamente la necesidad de iScroll?
  • ¿La vista Web de Android admite CSS3 WebKit Animations?
  • Plugin de androide phonegap ActionBar wrapper
  • Recursos de apoyo para tabletas y móviles
  • ¿Dónde / Cómo puedo obtener los controladores USB OEM de Android SDK para un Samsung Galaxy Player (YP-G1)
  • ¿Cuáles son las características específicas de iPhone / Android?
  • Obtener MSISDN desde la tarjeta SIM con Android
  • Desarrollo multiplataforma HTML5 móvil con una sola base de código, incluyendo servidor de aplicaciones y bibliotecas de clientes nativos?
  • Móvil Barrera de acceso al desarrollo
  • ¿Qué se puede lograr en una aplicación móvil nativa que no se puede hacer en una aplicación web HTML5?
  • Flicker con StageVideo en la tableta Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.