window.resolveLocalFileSystemURL总是失败

时间:2014-03-18 07:18:28

标签: file camera cordova-3 cordova-plugins

我正在尝试使用window.resolveLocalFileSystemURL但由于某种原因我的故障回调总是被触发。永远不会触发成功回调。这是我的代码:

// Take a picture using the camera
  $scope.takePicture = function () {
    var options = { 
      quality: 100, 
      targetWidth: 500, 
      targetHeight: 500, 
      destinationType: Camera.DestinationType.FILE_URI, 
      encodingType: Camera.EncodingType.JPEG, 
      saveToPhotoAlbum: true, 
      correctOrientation: true, 
      sourceType: Camera.PictureSourceType.CAMERA, 
      allowEdit: true 
    };

    navigator.camera.getPicture(
      cameraSuccess,
      cameraFailure,
      options
    );
    return false;
  };



// what to do when the camera has successfully yielded a good image
  function cameraSuccess(imageURI){ 
    alert('this is imageURI: ' + imageURI); 
    window.resolveLocalFileSystemURL(imageURI, resolvePhotoPath, fail); 
  };

当我提醒imageURI时,我会得到这样的结果:

文件:///storage/sdcard0/DCIM/Camera/1395126124474.jpg

我可以确认当我使用android上的Files应用程序查看该路径时,该文件确实存在。但是当代码运行并执行window.resolveLocalFileSystemURL时,始终会触发失败回调,并显示错误 { “代码”:5}。

我已经看到这意味着有一个ENCODING_ERR,但有点令人困惑的是导致这种情况的原因。该文件确实正确保存到该位置,因此我不知道为什么代码会失败。

这里有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

它似乎是相机插件中的一个错误(我不认为它应该存储图像)。

话虽如此,有一种解决方法。

  1. 安装org.apache.cordova.file-system-roots插件
  2. <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />添加到您的config.xml
  3. 重建您的应用