cordova-plugin-file 无法将文件从图库复制到 cordova.file.dataDirectory

cordova-plugin-file can't copy file from gallery to cordova.file.dataDirectory

我正在尝试将摄像机中的视频记录保存到 cordova.file.dataDirectory,但是当我尝试从图库中复制新创建的文件时,我收到 NOT_FOUND_ERR

我正在使用 cordova-plugin-media-capture 录制视频,然后保存到用户的图库中。但是当我使用 window.resolveLocalFileSystemURL 获得 FileEntry 并尝试使用 entry.copyTo() 时,会抛出 NOT_FOUND_ERR 错误。

我的代码的精简/混乱版本如下:

// Capture Video
navigator.device.capture.captureVideo(onCaptureSuccess, onError, { limit: 1 });

onCaptureSuccess(mediaFiles: any[]) {

  // Get video Path
  let videoPath = mediaFiles[0].fullPath;

  // Get the actual video file
  window.resolveLocalFileSystemURL(videoPath, entry => {

    // Get the cordova.file.dataDirectory directory entry
    window.resolveLocalFileSystemURL(cordova.file.dataDirectory, directoryEntry => {

      // Get / Create the 'videos' directory
      directoryEntry.getDirectory('videos', { create: true }, videoDirectoryEntry => {
    
        // Copy video file (entry) to 'videos' directory
        entry.copyTo(videoDirectoryEntry, 'copiedVideo', copiedEntry => {

          // I should now have a file entry of the copied video, but I don't. I get an error.
          console.log(copiedEntry);

        }, err => {

          console.error(err); // This is where I capture the NOT_FOUND_ERR error

        });
    
      }, onError);
    
    }, onError);

  });

}

onError(error: Error) {
  console.error(error.message)
}

知道为什么文件没有被复制吗?我是否需要请求特定权限才能写入 cordova.file.dataDirectory

经过反复试验,我发现我需要为 Android.

请求 READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 权限

以后我会检查 iOS 是否需要任何权限,但现在我很高兴它适用于 Android。