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 に答える