1

phonegap/cordova を使用して、javascript と html でアプリを作成しています。私はJavaScriptでこのコードを持っています:

$('#diario_delete_btn').live('tap',function(e){
    var iddb = $(this).find('a').attr('rel');
    confirm_diario_delete(iddb);        
});

function diario_delete(iddb) {
    var db = window.openDatabase("Database", "1.0", "123nozze", 200000); 
    db.transaction(function(tx){
        tx.executeSql('DELETE FROM AgendaItemJDO WHERE id='+iddb); 
        lastChangeUpdate();
    });

    $('.diario_row[db_id="'+ iddb +'"]').remove();
    $('#popupMenuDiario').popup("close");
}

function confirm_diario_delete(iddb) {
    var r = confirm("Confermi l'eliminazione dell'elemento?");
    if (r) {
        diario_delete(iddb);
    } else {
        $('#popupMenuDiario').popup("close");
    } 
}

動作しているように見えますが、「確認ボタン」を押す前に「キャンセルボタン」(したがってr = false)をn回選択すると、次回は確認ダイアログが2回表示され、次回は3回表示されます。なぜこれがこのように振る舞うのかわかりません。コードを変更し、確認ダイアログに Cordova のサンプル コードを使用した場合も同様です。

何が問題なのか、どうすれば解決できるのかについてのアイデアはありますか? ありがとう!

4

2 に答える 2

4

Phonegap がサポートするネイティブ通知を使用する必要があります。

具体的には、上記のリンクから取得した .confirm() メソッド。

// process the confirmation dialog result
function onConfirm(button) {
    alert('You selected button ' + button);
}

// Show a custom confirmation dialog    
//

navigator.notification.confirm(
    'You are the winner!',  // message
    onConfirm,              // callback to invoke with index of button pressed
    'Game Over',            // title
    'Restart,Exit'          // buttonLabels
);
于 2013-11-14T00:02:34.600 に答える