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 bloquear una llamada de número móvil y recepción de mensajes en el desarrollo de aplicaciones Android?
  • Cómo poner la autenticación de usuario en una aplicación móvil
  • Error al crear notificación: constructor ilegal
  • Delphi XE5 para android no copia el recurso en System.StartUpCopy
  • ¿Soporta el emulador de Android OpenGL ES 2.0?
  • Alternativa de Java para el desarrollo de Android
  • BackSpace no dispara el evento keyup en android mobile
  • Android ListView: obtenga una distancia de desplazamiento
  • NullPointerExecption al llamar a un PhoneStateListener en un servicio
  • Web móvil: deshabilita la selección de texto de toque largo / taps
  • ¿Vale la pena esperar un par de milisegundos en un evento TextChanged?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.