En mi aplicación PhoneGap/jQuery Mobile, actualmente estoy usando la API Camera de PhoneGaps para permitir que el usuario tome una foto, que también está almacenada en Camera Roll. Estoy configurando DestinationType en FILE_URI y guardando esta ruta en un db local. Sin embargo, FILE_URI es una ruta a una ubicación temporal que se destruye cuando se cierra la aplicación. Estaba pensando en guardar el nombre de la imagen y luego recuperar la imagen de Camera Roll. ¿Hay alguna ruta que pueda usar para recuperar más tarde las imágenes en Camera Roll?Phonegap - Recuperar foto desde Camera Roll a través de la ruta
estaba guardando las imágenes como base 64 en el PP, pero estoy un poco cansado de este método debido a esta nota en el PhoneGap API Doc:
Nota: La calidad de imagen de imágenes tomadas con la cámara en dispositivos más nuevos es bastante bueno. La codificación de tales imágenes con Base64 ha causado problemas de memoria en algunos de estos dispositivos (iPhone 4, BlackBerry Torch 9800). Por lo tanto, usar FILE_URI como 'Camera.destinationType' es altamente recomendado.
EDIT:
¡Gracias trabajar con la respuesta de @Simon MacDonald. Aquí está mi código despojada:
function capturePhoto() {
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 25, destinationType: Camera.DestinationType.FILE_URI });
}
function onPhotoURISuccess(imageURI) {
createFileEntry(imageURI);
}
function createFileEntry(imageURI) {
window.resolveLocalFileSystemURI(imageURI, copyPhoto, fail);
}
function copyPhoto(fileEntry) {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) {
fileSys.root.getDirectory("photos", {create: true, exclusive: false}, function(dir) {
fileEntry.copyTo(dir, "file.jpg", onCopySuccess, fail);
}, fail);
}, fail);
}
function onCopySuccess(entry) {
console.log(entry.fullPath)
}
function fail(error) {
console.log(error.code);
}
Estoy tratando de manejar esta misma situación, y su código publicado parece que funciona y me sale todo el camino hasta su función onCopySuccess, pero aún no veo imágenes en mi Camera Roll ni en ningún otro álbum. La entrada que obtengo en la función onCopySuccess describe un archivo que se borra cuando se borra la temperatura. - Yoh Suzuki acaba de editar –
El código anterior no guardará la foto en un álbum, sino en la carpeta Documentos de su aplicación. La ruta a la foto se verá más o menos así: '" /var/mobile/Applications/017323CA-35C1-4D50-9CBA-DCC7C697FAF1/Documents/photos/file.jpg " '. La cadena arbitraria es la carpeta que iOS crea para su aplicación. Para guardar una foto en el carrete de la cámara, en la llamada getPicture, agréguela al objeto de opciones: '" savePhotoToAlbum ":" true "'. Tenga en cuenta que no puede obtener la ruta de la imagen en Camera Roll (AFAIK), por lo que debe guardar una copia en la carpeta Documentos de su aplicación. – Casey
savePhotoToAlbum no parece funcionar para mí, y no está en la documentación. –