Ionic-Ios-Cordova文件插件-错误

问题描述

我正在开发针对iOS和Android的混合应用程序。我必须实现照片上载器,因此我是通过ImagePickerFile Cordova插件实现的。我在Android上进行了测试,一切正常。

问题是,当我在iOS上对其进行测试时,我通过ImagePicker获得了图像URI,但是File引发了以下错误

[错误]-错误错误:未捕获(按承诺):
FileError:{“代码”:5,“消息”:“ ENCODING_ERR”}

我已经看到很多与此错误相关的问题,但是当我遇到iOS问题时,它们都与Android有关。我知道这是一个非常复杂的问题,因此,如果有人可以给我任何建议,我将不胜感激。

有关该问题的更多详细信息:

this.imagePicker
  .getPictures({
      maximumImagesCount: 1,})
  .then(async (result : string[]) => {
      let file = 'file://' + result[0];
      let path = file.substring(0,file.lastIndexOf("/") + 1);
      this.image = await this.file.readAsDataURL(path,file): // Line which throws the exception
  });

PS:我已经尝试过以我能想象的所有方式添加'file://'=)

预先感谢

解决方法

感谢你们俩的帮助,我通过将outputType更改为1(base64 dataURL)而不是0(URI)来解决了问题。

这是修复我的错误的代码。

this.imagePicker
    .getPictures({
      outputType: 1,})
    .catch((e) => alert(e))
    .then(async (results: string[]) => {
         this.image = "data:image/jpg;base64," + results[0]
      }
    });

对此的可能解释是ImagePicker正在从ios画廊目录复制到ImagePicker的临时目录,然后File试图读取这些复制的文件,但它们必须已被iOS File System删除。