0

我正在尝试让我的应用程序用相机拍照,然后将此代码显示给用户。我试图完美地遵循 phonegap 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");
}

从来没有得到我准备好的警报。

4

1 回答 1

0

首先,您确定在 deviceready 事件之后使用您的功能吗?

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

那么,我们能看到setImage函数和onError吗?我们能得到回应吗?在 setImage 中,您应该有一个 image 参数和 onError,一条消息:

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

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

另外,您是否收到“onerror”警报?

于 2012-05-15T13:08:24.523 回答