【发布时间】:2019-12-29 05:02:53
【问题描述】:
我正在使用 cordova-plugin-camera cordova 插件(版本 4.0.3),由 Ionic 4 @ionic-native/camera@4 的 Ionic Native 包装器包装。我正在使用它来捕捉照片(常规或来自图书馆),并将其移动到我的应用程序存储区域以进行保存/发送。事情在 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);
}
【问题讨论】:
-
是相机抛出错误还是
resolveLocalFilesystemUrl?? -
resolveLocalFilesystemUrl 可以。相机捕捉似乎有效,并返回捕捉照片的文件路径。要么我无权访问提供的文件,要么它无效?
-
你能把摄像头的uri和你怎么称呼
resolveLocalFilesystemUrl吗? -
是的。
let originalFile = await this.file.resolveLocalFilesystemUrl(imagePath);URI 的形式为file:///var/mobile/Containers/Data/Application/{guid}/tmp/XYZ.jpg -
你可以试试
destinationType: this.camera.DestinationType.NATIVE_URI??
标签: ios cordova ionic-framework ionic3 cordova-plugins