cordova - ionic 4 cordova 相机获取带有照片库的 fileURI
问题描述
我可以使用 SOURCETYPE 相机获得 base64,但不能使用 PHOTOLIBRARY。它看起来像 webview 或 resolveLocalFileSystemURL 的问题。我不想使用 DATA.URL 导致应用程序崩溃。
期望:ResolveLocalFileSystemURL 应该返回实际的文件路径
回购:https ://github.com/indraraj26/cordova-testing
takePicture(source: string) {
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE
};
if (source == "1") {
options.sourceType = this.camera.PictureSourceType.CAMERA;
} else if (source == "2") {
options.sourceType = this.camera.PictureSourceType.PHOTOLIBRARY;
}
this.camera.getPicture(options).then(
async imageData => {
console.log(this.webView.convertFileSrc(imageData), "convertFileSrc");
this.imgUrl = this.webView.convertFileSrc(imageData);
alert(this.webView.convertFileSrc(imageData));
console.log(imageData, "imageData");
alert(imageData);
let blob = await fetch(this.webView.convertFileSrc(imageData)).then(r =>
r.blob()
);
console.log(blob, "blob");
alert(blob);
this._base64.encodeFile(imageData).then(base64str => {
console.log(base64str);
alert(base64str);
});
window.resolveLocalFileSystemURL(imageData, fileEntry => {
fileEntry.file(file => {
console.log(file, "window file");
alert(file + "window file");
console.log(file.localURL, "localUrl");
this._base64
.encodeFile(file.localURL)
.then(base64LocalURL => {
console.log(base64LocalURL, "base64LocalUrl");
})
.catch(e => console.log(e, "base64localError"));
});
});
// if (imageData.indexOf("file://") == -1) {
// imageData = "file://" + imageData;
// }
this._file.resolveLocalFilesystemUrl(imageData).then(entry => {
console.log(entry);
alert("entry" + entry);
// console.log(
// entry.toInternalURL(),
// entry.toURL(),
// entry.fullPath,
// entry.nativeURL
// );
// if (imageData.indexOf("file://") == -1) {
// imageData = "file://" + imageData;
// }
// entry.file(rfile => {
// console.log(rfile, "real file");
// alert("real file" + rfile);
// });
});
},
err => {
console.log(err);
}
);
}
解决方案
推荐阅读
- linux - AWS SSM 自定义清单
- python - 将 NumPy 数组转换为列向量
- php - 检索具有 _____________ 关系的记录?
- ios - 在导航控制器上弹回时显示 UIView
- python - 如何在没有数据格式值的情况下使用 Python 从 HANA DB 获取数据?
- unity3d - 我想将 FBX 中的动画片段提取到 Unity 中的脚本中
- java - 如何在 java 命令中将 -XshowSettings:vm 的输出发送到标准输出
- python - 如何使用熊猫从国家列中获取每个国家/地区名称一次?
- r - 将一个因子列转换为 r 中的多个二分列
- git - Git如何只考虑新的或修改过的文件