Trong ứng dụng PhoneGap/jQuery Mobile của tôi, tôi hiện đang sử dụng API Camera của PhoneGaps để cho phép người dùng chụp ảnh, cũng được lưu trữ trong Camera Roll. Tôi đang đặt DestinationType thành FILE_URI và lưu đường dẫn này trong một db cục bộ. Tuy nhiên, FILE_URI là đường dẫn đến vị trí tạm thời bị hủy khi ứng dụng bị đóng. Tôi đã nghĩ đến việc lưu tên của hình ảnh và sau đó lấy hình ảnh từ Camera Roll. Có một con đường tôi có thể sử dụng để sau này lấy các hình ảnh trong Camera Roll?Phonegap - Lấy ảnh từ Camera Roll qua đường dẫn
tôi đã tiết kiệm những hình ảnh như Base64 trong db, nhưng tôi là một chút mệt mỏi của phương pháp này vì ghi chú này trong PhoneGap API Doc:
Lưu ý: Chất lượng hình ảnh của hình ảnh được chụp bằng máy ảnh trên các thiết bị mới hơn khá tốt. Việc mã hóa các hình ảnh như vậy bằng Base64 đã gây ra các sự cố bộ nhớ trên một số thiết bị này (iPhone 4, BlackBerry Torch 9800). Do đó, việc sử dụng FILE_URI vì 'Camera.destinationType' là được khuyến nghị.
EDIT:
Got nó làm việc với các câu trả lời @Simon MacDonald. Đây là mã xuống tước của tôi:
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);
}
Tôi đang cố gắng để xử lý tình trạng tương tự chính xác này, và mã đăng của bạn dường như để làm việc và tôi nhận được tất cả các cách để chức năng onCopySuccess của bạn, nhưng tôi vẫn không thấy hình ảnh nào trong Thư viện ảnh của tôi hoặc bất kỳ album nào khác. Mục nhập mà tôi nhận được trong hàm onCopySuccess mô tả tệp bị xóa khi tạm thời bị xóa. - Yoh Suzuki vừa chỉnh sửa –
Đoạn mã trên sẽ không lưu ảnh vào album, nhưng vào thư mục Tài liệu của ứng dụng của bạn. Đường dẫn đến ảnh sẽ trông giống như sau: '" /var/mobile/Applications/017323CA-35C1-4D50-9CBA-DCC7C697FAF1/Documents/photos/file.jpg " '. Chuỗi tùy ý là thư mục iOS tạo cho ứng dụng của bạn. Để lưu ảnh vào thư viện ảnh, trong cuộc gọi getPicture, hãy thêm ảnh này vào đối tượng tùy chọn: '" savePhotoToAlbum ":" true "'. Lưu ý rằng bạn không thể có được đường dẫn của hình ảnh trong Camera Roll (AFAIK), đó là lý do tại sao bạn phải lưu một bản sao vào thư mục Documents của ứng dụng của bạn. – Casey
savePhotoToAlbum dường như không hoạt động đối với tôi và không ở đâu trong tài liệu. –