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.
- ¿Puedo usar Corona sdk para hacer aplicaciones sin juego?
- ADB no reconoce Nexus 4 - más consejos
- Mantenga la pantalla encendida durante el juego de Android sin la interacción del usuario
- ¿Qué sucede con la ejecución de JavaScript (settimeout, etc.) cuando el iPhone / Android se va a dormir?
- ¿Es OAuth en un teléfono móvil usando un servidor proxy demasiado problema?
¡Gracias por adelantado!
- Secretos de OAuth en aplicaciones para móviles
- XPCOM y Firefox móvil
- Parse crash en la creación de usuario
- ¿Puedo desarrollar una aplicación de Android usando LIBGDX sin mucho conocimiento de los componentes del sistema operativo Android?
- Plugin de androide phonegap ActionBar wrapper
- Marco basado en JSF para sitios web táctiles
- Android: securityException: "el destino debe estar en el almacenamiento externo"
- Phonegap obtener valores localstorage de código Java?
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