未定义的错误访问Android相机

时间:2012-05-15 12:54:41

标签: javascript android cordova

我正在尝试让我的应用程序用相机拍照,然后将此代码显示给用户。我试图完全按照手机屏幕api,但是当我没有工作时它们不起作用在phonegap示例中使用我的代码并将函数名称更改为phonegap示例使用的内容并运行示例脚本,它完全正常工作。我正在使用的代码是

function gotoPicture() {

    if (/Android/.test(navigator.userAgent)) {
        try {
            alert("test2");
            navigator.camera.getPicture(setImage,onError,{sourceType: Camera.PictureSourceType.CAMERA, destinationType: Camera.DestinationType.DATA_URL,quality:60});
        } //try
        catch (e) {
            alert("onerror")
            alert(e.Message);//test
        } //catch
    } //if
    else {
        $.mobile.changePage('#expense-page-picture');
    } //else
} //gotoPicture

setImage和onError代码如下

function onError(error) {
    alert("test1")
    navigator.notification.alert(error, null, "Error");
}

function setImage(imageData) {
    alert("test3")
    artificialReceipt = imageData;
    /* document.getElementById('expense-form-picture').src = 'data:image/jpg;base64,' + artificialReceipt; */
   document.getElementById('expense-form-picture').src = artificialReceipt;     // with cordova 1.5.0, it seems that imageData is a file location
    $.mobile.changePage('#expense-page-picture');
}

我得到了捕获中的onerror警报我从未得到test1警报我也会尝试添加onDeviceReady并查看是否有所不同我相信我之前尝试过 我还在代码上面添加了这个并没有发生任何事情

document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady()
{
    alert("i am ready");
}

从未得到我准备好的警报。

1 个答案:

答案 0 :(得分:0)

首先,您确定在设备准备事件后使用了您的功能吗?

document.addEventListener("deviceready",onDeviceReady,false);

然后,我们可以看到setImage函数和onError吗? 我们能得到答复吗? 在setImage中,你应该有一个image参数和onError,一条消息:

function setImage(image) {
    console.log(image);
}

function onError(message) {
    console.log('error:' + message);
}

另外,您是否收到了'onerror'警报?