如何显示使用cordova-plugin-media-capture捕获的图像

时间:2018-04-04 01:46:23

标签: javascript cordova android-camera cordova-plugins filereader

我正在使用this plugin,这让我可以使用Android手机拍摄图像。

现在我应该如何显示刚刚在我的应用中捕获的图像?以下没有工作。它说: " TypeError:无法执行' readAsDataURL' on' FileReader':参数1的类型不是' 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);
    });
}

1 个答案:

答案 0 :(得分:0)

我解决了它:

function capturePhoto(){
    navigator.device.capture.captureImage(
        file=>{
            document.getElementById('fsPhotoI').src=file[0].fullPath;
        },
        e=>{alert(JSON.stringify(e));},
        {limit:1}
    );
}

我忽略的一件事是,返回的'file'变量是一个数组而不是一个文件,即使只捕获了一个图像。