我已经尝试过实施这项工作
1.拍摄一张照片
2.从保存的地方获取照片
3.将照片作为base64阅读
我遵循了这种方法:
var cameraOptions = {};
function capturePhoto() {
console.log("capture photo");
cameraOptions = { quality: 70,destinationType: Camera.DestinationType.FILE_URI,sourceType: Camera.PictureSourceType.CAMERA,saveToPhotoAlbum: true };
doIt();
}
function doIt() {
navigator.camera.getPicture(onCameraSuccess,onCameraFail,cameraOptions);
}
function onCameraSuccess(imageURI) {
console.log("Camera Success");
$('#MokhalfaPhotoLocation').val(imageURI);
console.log("Image URI: " + imageURI);
window.resolveLocalFileSystemURI(imageURI,onResolveImageSuccess,onFail); //get the file from the physical path...
}
function onResolveImageSuccess(fileEntry) {
fileEntry.file(gotFile,onFail);
}
function gotFile(file) {
readDataUrl(file);
}
function readDataUrl(file) {
console.log("read file as dataUrl");
var reader = new FileReader();
reader.onloadend = function (evt) {
console.log("Read as data URL");
window.localStorage.setItem("mokhalfaPhotoURL",evt.target.result);
};
reader.readAsDataURL(file);
}
这条链工作正常,直到CameraSuccess然后它就失败了
window.resolveLocalFileSystemURI(imageURI,onFail);
它输入了onFail事件,错误代码= 5
顺便说一下,这段代码在Android上运行良好,但问题出在Windows Phone 7上
任何人都知道这是什么问题?
我最近遇到了这个错误.解决方案很简单:)
function onCameraSuccess(imageURI) {
console.log("Camera Success");
$('#MokhalfaPhotoLocation').val(imageURI);
console.log("Image URI: " + imageURI);
window.resolveLocalFileSystemURI("//" + imageURI,onFail); //get the file from the physical path...
}
如果你警告imageURI它应该看起来像(/ CachedImagePath / etcetc /),所以window.resolveLocalFileSystemURI不知道在哪里解决,所以通过在URI前面//它看起来正确的路径.
干杯,我会将此问题发布给他们的bug追踪器
