Cordova 相机 iOS 问题:NOT_FOUND_ERR

Cordova Camera iOS Issue: NOT_FOUND_ERR

我正在使用 cordova-plugin-camera cordova 插件(版本 4.0.3),由 Ionic 4 @ionic-native/camera@4 的 Ionic Native 包装器包装。我正在使用它来拍摄照片(常规照片或来自图书馆的照片),并将其移至我的应用程序存储区域 saving/sending。在 Android 上运行良好。在 iOS 上,当我试图获取从捕获返回的 FILE_URI 时,我继续得到 NOT_FOUND_ERR 返回。

以下是我拍摄图像的方式,效果很好。相机启动,我拍摄(或选择)一张照片,然后我得到一个文件 URI (file:///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);
}

您在使用 Camera.DestinationType 配置时似乎遇到了一些问题。以下是使用 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