resolveLocalFileSystemURI错误代码5 windows phone 7 phonegap

时间:2013-02-25 17:32:05

标签: file cordova windows-phone-7 camera uri

我已经尝试过实施这项工作 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, onResolveImageSuccess, onFail);

它输入了onFail事件,错误代码= 5

不过,这段代码在Android上运行良好,但问题出在Windows Phone 7上 任何人都知道这是什么问题?

3 个答案:

答案 0 :(得分:4)

我最近遇到了这个错误。解决方案非常简单:)

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...
}

如果你警告imageURI它应该看起来像(/ CachedImagePath / etcetc /),所以window.resolveLocalFileSystemURI不知道在哪里解决,所以通过在URI前面//它看起来是正确的路径。

干杯,我会将此问题发布到他们的错误跟踪器

答案 1 :(得分:0)

此问题已得到解决。请参阅" https://issues.apache.org/jira/browse/CB-2736"。但是,在我的Windows 8手机上,我无法访问要在HTML IMG标记中显示的照片文件。我已经尝试过fileEntry.fullPath,fileEntry.toURL()和fileEntry.toNativeURL()。

答案 2 :(得分:0)

你应该尝试这样的事情

$window.resolveLocalFileSystemURL("file://" + videoURI, function (fileEntry) {
   console.log('Success: '+fileEntry.name);
   fileEntry.getMetadata(function(metadata) {
      if(metadata.size>20971520){
          $ionicPopup.alert({
              template: '<h5>Lo sentimos <i class="icon ion-sad-outline"></i> , el video sobre pasa el limite de peso</h5>',
              title: 'Limite de peso',
          });
       }else{

       }
    });
}, function (err) {
      console.log(err);
});