2012-04-11 5 views
1

を返します:私はアプリケーションの最初の時間を終了すると確認ダイアログは、これが私のコードではfalseすぐ

index.html: 
    ... 
     <script type="text/javascript" charset="utf-8" src="main.js"></script> 
    </head> 
    <body onload="init();"></body> 
    ... 

main.js: 
    function onBackPressed(e) { 
     console.log("onBackPressed()"); 
     var answer = confirm("Do you want to exit?"); 
     console.log(answer); 
     if (answer) { 
      navigator.app.exitApp(); 
     } 
    } 
    function init() { 
     ... 
     document.addEventListener("backbutton", onBackPressed, false); 
     ... 
    } 

、すべてがOKのようです。 問題は、次回アプリケーションを起動するときに確認ダイアログが直ちにfalseを返し、ダイアログが表示されたままになります。 「OK」をクリックすると、何も起こりません。ここで

はlogcatから出力されます:

04-11 16:16:26.444: D/PhoneGapLog(18356): onBackPressed() 
04-11 16:16:26.444: D/PhoneGapLog(18356): file:///android_asset/www/main.js: Line 49 : onBackPressed() 
04-11 16:16:26.444: I/Web Console(18356): onBackPressed() at file:///android_asset/www/main.js:49 
04-11 16:16:26.584: D/PhoneGapLog(18356): false 
04-11 16:16:26.584: D/PhoneGapLog(18356): file:///android_asset/www/main.js: Line 51 : false 
04-11 16:16:26.584: I/Web Console(18356): false at file:///android_asset/www/main.js:51 

が、これはPhoneGapのか、アンドロイドのバグですか?または私は何か間違っている?

私はAndroid 2.3.6とphonegap 1.4.1(バージョン1.5はバックボタンイベントに問題があります)のNexus Oneを使用しています。

+0

は(onbackpressedどのように表示)を実行する - と、ここを見て:http://stackoverflow.com/a/3212253/295783 – mplungjan

+0

私は= 'onloadイベントを持っていますbodyタグとinit関数の "init()" '私は' document.addEventListener( "backbutton"、onBackPressed、false); 'を持っています。関数onBackPressed()には上記のコードが含まれています。 – Chemik

答えて

3

PhoneGapで、確認は非同期コールバックです。 api docsを参照してください。

の回答は、すぐに返されるため、常にfalseになります。

コードをより次のようになります。

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

// Show a custom confirmation dialog 
// 
function showConfirm() { 
    navigator.notification.confirm(
     'You are the winner!', // message 
     onConfirm,    // callback to invoke with index of button pressed 
     'Game Over',   // title 
     'Restart,Exit'   // buttonLabels 
    ); 
} 
関連する問題