1

アプリには、dblog を削除するためのボタンがあります。ユーザーがボタンをクリックすると、確認を求めてから削除します。

navigator.notification.confirm を使用してユーザーに尋ねています

ここに私のコードがあります -

function deleteLog()
{

    navigator.notification.confirm(
    "Are you sure you want delete?",
    function(buttonIndex){
        if(buttonIndex==1)
        {
            console.log("User has cancelled");
            return;
        }
    },
    "Confirmation",
    "Cancel, Delete");

    console.log("User has confirmed Delete");


}

ただし、ユーザーが [キャンセル] または [削除] をクリックする前でも、「ユーザーが確認しました」というメッセージが表示されます。上記のelseステートメントを追加しようとしましたが、まだ運がありません。

何が間違っている可能性がありますか?

編集: いくつかの詳細情報 -

私が好きなシーケンスは、シングル スレッド === 削除を押す -> 確認を求める -> ユーザーが削除を押した -> dbLog を削除するというものです。

何が起きているか 削除を押します --> スレッド 1 == 確認を求めます スレッド 2 (削除を押した後) --> DB ログの削除

4

1 に答える 1

2

console.log("User has confirm Delete") をコールバックの外に置くことで、基本的に、ユーザーが何を押しても console.log を実行するようにプログラムに指示します。

使いやすさを向上させるために確認機能を削除し、次のように記述します。

function deleteLog() {
    navigator.notification.confirm(
        'Are you sure you want delete?', // message
        onConfirm,                       // callback to invoke with index of button
        'Confirmation',                  // title
        'Cancel,Delete'                  // buttonLabels
    );
}

//on button press, the onConfirm function is called
function onConfirm(button) {
    //console.log('You selected button ' + button);
    if(button == 1){
        //pressed "cancel"
        console.log("User has cancelled");
    }
    else if(button == 2){
        //pressed "delete"
        console.log("User has confirmed Delete");
    }
}

これは機能します。

于 2013-03-03T10:46:09.870 に答える