我正在使用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);
}
答案 0 :(得分:1)
使用Camera.DestinationType
配置时,您似乎有些打h。以下是使用FILE_URI
和NATIVE_URI
Camera.DestinationType.FILE_URI
'file://' ios
'content://' android
Camera.DestinationType.NATIVE_URI
'assets-library://' ios
'content://' android
尽管这是输出,但这在内部与您的sourceType
相关。这意味着,如果您的sourceType
是相机,则应该使用FILE_URI
,因为输出是从临时存储中获取的,而如果您使用的是照相馆,则需要从其中获取输出库,这就是为什么建议您使用NATIVE_URI