在我的PhoneGap/jQuery Mobile应用程序中,我目前正在使用PhoneGaps的Camera API来允许用户拍摄照片,该照片也存储在相机胶卷中.我将DestinationType设置为FILE_URI并将此路径保存在本地数据库中.但是,FILE_URI是应用程序关闭时销毁的临时位置的路径.我在考虑保存图像的名称,然后从相机胶卷中检索图像.是否有一条路径可用于稍后检索相机胶卷中的图像?
我在db中将图像保存为Base64,但由于PhoneGap API Doc中的这个注释,我对这种方法有点厌倦:
注意:在较新设备上使用相机拍摄的照片的图像质量非常好.使用Base64对这些图像进行编码会导致某些设备(iPhone 4,BlackBerry Torch 9800)出现内存问题.因此,强烈建议使用FILE_URI作为'Camera.destinationType'.
编辑:
得到了@Simon MacDonald的回答.这是我的精简代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
Sim*_*ald 10
使用FILE_URI方法检索文件后,应使用File API将映像从temp文件夹复制到Documents文件夹,并将新路径存储在数据库中.
因此,您可以将getPicture()的结果传递给window.resolveLocalFileSystemURI()以获取FileEntry.然后,您可以调用FileEntry.copyTo()方法来备份您的文件.
| 归档时间: |
|
| 查看次数: |
16126 次 |
| 最近记录: |