如何显示使用 cordova-plugin-media-capture 捕获的图像
How to display an image captured with cordova-plugin-media-capture
我正在使用 this plugin,这让我可以用 Android phone 拍摄图像。
现在我应该如何显示刚刚在我的应用程序中捕获的图像?以下没有工作。它说:"TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'."
function capturePhoto(){
navigator.device.capture.captureImage(
file=>{
getBase64(file).then(b64=>{
document.getElementById('fsPhotoI').src=b64;
}).catch(e=>alert(e));
},
error=>{alert(error);},
{limit:1}
);
}
function getBase64(f) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(f);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
我解决了:
function capturePhoto(){
navigator.device.capture.captureImage(
file=>{
document.getElementById('fsPhotoI').src=file[0].fullPath;
},
e=>{alert(JSON.stringify(e));},
{limit:1}
);
}
我忽略的一件事是返回的 'file' 变量是一个数组而不是单个文件,即使只捕获了一张图像。
我正在使用 this plugin,这让我可以用 Android phone 拍摄图像。
现在我应该如何显示刚刚在我的应用程序中捕获的图像?以下没有工作。它说:"TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'."
function capturePhoto(){
navigator.device.capture.captureImage(
file=>{
getBase64(file).then(b64=>{
document.getElementById('fsPhotoI').src=b64;
}).catch(e=>alert(e));
},
error=>{alert(error);},
{limit:1}
);
}
function getBase64(f) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(f);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
我解决了:
function capturePhoto(){
navigator.device.capture.captureImage(
file=>{
document.getElementById('fsPhotoI').src=file[0].fullPath;
},
e=>{alert(JSON.stringify(e));},
{limit:1}
);
}
我忽略的一件事是返回的 'file' 变量是一个数组而不是单个文件,即使只捕获了一张图像。