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.
- ¿Por qué utilizar sqlite Database en Android?
- ¿El navegador de Android indica un tamaño de pantalla incorrecto?
- ¿Cuáles son las diferencias entre touchmove y gesturechange?
- Un APK que inicia una actividad diferente si su móvil o tablet (Android 2.1+)
- Los archivos en la nube de Rackspace suben directamente al cliente móvil
¡Gracias por adelantado!
- Android: securityException: "el destino debe estar en el almacenamiento externo"
- SetSpinnersShown y setCalendarViewShown en DatePicker obsoleto en el nivel 24 de API
- Cometa Scala y aplicaciones móviles
- Impresión desde la web en Android
- Marco basado en JSF para sitios web táctiles
- Agregando marcador múltiple en google map en android
- Cómo bloquear una llamada de número móvil y recepción de mensajes en el desarrollo de aplicaciones Android?
- ADB no reconoce Nexus 4 - más consejos
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 }); });
- No se puede resolver el símbolo AppCompatActivity – ¿No se reconocen las bibliotecas de soporte v7?
- Emulador de Android: ¿Cómo puedo obtener una lista de servicios que se están ejecutando