Phonegap - Получить фото с камеры Roll по пути
В моем приложении PhoneGap / jQuery Mobile в настоящее время я использую CameraGaps Camera API, чтобы позволить пользователю делать фотографии, которые также хранятся в Camera Roll. Я устанавливаю DestinationType в FILE_URI и сохраняю этот путь в локальной базе данных. Однако FILE_URI - это путь к временному местоположению, которое уничтожается при закрытии приложения. Я думал о сохранении имени изображения и последующем получении изображения из Camera Roll. Есть ли путь, который я могу использовать для последующего получения изображений в Camera Roll?
Я сохранял изображения как Base64 в БД, но я немного устал от этого метода из-за этой заметки вPhoneGap API Doc:
Примечание. Качество изображений, сделанных с помощью камеры на новых устройствах, достаточно хорошее. Кодирование таких изображений с использованием Base64 вызвало проблемы с памятью на некоторых из этих устройств (iPhone 4, BlackBerry Torch 9800). Поэтому настоятельно рекомендуется использовать FILE_URI в качестве Camera.destinationType.
РЕДАКТИРОВАТЬ:
Получил работу с ответом @Simon MacDonald's. Вот мой урезанный код:
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);
}