科尔多瓦相机iOS问题:NOT_FOUND_ERR

时间:2019-08-23 22:21:44

标签: ios cordova ionic-framework ionic3 cordova-plugins

我正在使用cordova-plugin-camera Cordova插件(版本4.0.3),该插件由Ionic 4 @ionic-native/camera@4的Ionic Native包装器包装。我正在使用它来捕获照片(常规或库中的照片),并将其移到我的应用存储区域中以进行保存/发送。在Android上一切正常。在iOS上,当尝试获取从捕获返回的FILE_URI时,我会继续得到NOT_FOUND_ERR的回复。

下面是我捕获图像的方式,效果很好。相机启动,我拍摄(或选择)照片,然后返回文件URI(文件:/// var / mobile / Containers / Data / Application / {guid} /tmp/XYZ.jpg)。然后,像在此结果文件URI上执行resolveLocalFilesystemUrl一样简单的操作将用NOT_FOUND_ERR轰炸。有什么建议吗?

const options: CameraOptions = {
  quality: 100,
  destinationType: this.camera.DestinationType.FILE_URI,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE,
  sourceType: (isFromLibrary) ? this.camera.PictureSourceType.PHOTOLIBRARY : this.camera.PictureSourceType.CAMERA, 
  saveToPhotoAlbum: false,
  targetWidth: (isForDocScan) ? desiredWidth + 500 : desiredWidth,
  targetHeight: (isForDocScan) ? desiredHeight + 500 : desiredHeight
}

let result = null;
try {
  result = await this.camera.getPicture(options);
}
catch (err) {
  this.loggingService.error('Error getting photo', err);
}

1 个答案:

答案 0 :(得分:1)

使用Camera.DestinationType配置时,您似乎有些打h。以下是使用FILE_URINATIVE_URI

时的输出

Camera.DestinationType.FILE_URI

'file://' ios
'content://' android

Camera.DestinationType.NATIVE_URI

'assets-library://' ios
'content://' android

尽管这是输出,但这在内部与您的sourceType相关。这意味着,如果您的sourceType是相机,则应该使用FILE_URI,因为输出是从临时存储中获取的,而如果您使用的是照相馆,则需要从其中获取输出库,这就是为什么建议您使用NATIVE_URI