2012-04-12 8 views
1

私は次のコードで私のPhoneGapのAndroidアプリを閉じるにしようとしている:閉じるAndroidアプリのjQuery - PhoneGapの

document.addEventListener("backbutton", function() { 
    if ($('.screenshot').is(":visible")) { 
     if (confirm('Afsluiten?')){ 
      setTimeout(function() { navigator.app.exitApp(); }); 
     } 
     else { 
      ''; 
     } 
    } 
    else { 
     $(".items , .screenshot").show(); 
     $(".content , .openbrowser , .html5vid , .introtekst_gal").hide(); 
     $(".terug").hide(); 
    } 
}, true); 

それは一度に動作します:バックボタンを押すと、「OK」をアプリを閉じて、 予想通り。

しかし、私はこのようにそれを行う際に、アプリはもう閉じない:

  • 押してバックボタン(ショーをポップアップ表示)
  • を押して
  • (消えるをポップアップ)「キャンセル」
  • 押してバックボタン(ショーをポップアップ表示)
  • を押して「OK」(離れて行き、アプリを閉じる必要がありますが、ないポップアップ表示)

私が間違って何をしているのですか?

答えて

8

あなたはこのコードを試すことができます。

 document.addEventListener("backbutton", function() { 
     navigator.notification.confirm(
      'Do you want to quit', 
      onConfirmQuit, 
      'QUIT TITLE', 
      'OK,Cancel' 
     ); 
    }, true); 


    function onConfirmQuit(button){ 
     if(button == "1"){ 
      navigator.app.exitApp(); 
     } 
    } 
+0

これは働いていました!いくつかの奇妙な方法で私のコードとSimonのコードは一度しか働かなかった。これは、最終的に起こっていることと同じことですが、複数回動作します。 ボックスのテキストを適応できる部分の特別な名誉:D – Rvervuurt

0

私は私が使用して終了テストするためのコードの一部を下に取り除く必要がありました:

 document.addEventListener("backbutton", function() { 
      if (confirm('Afsluiten?')){ 
       setTimeout(function() { navigator.app.exitApp(); }); 
      } 
      else { 
       ''; 
      } 
     }, true); 

、それがうまく動作しているようです。いくつかのconsole.logを実行して、確認ダイアログが正しい場所に戻るかどうかを確認する必要があります。また、アプリケーションを実行すると、 "adb logcat"には何が表示されますか?

関連する問題