我已经尝试过实施这项工作
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追踪器