4

HTML5 Web アプリケーションを開発し、Cordova (phonegap) 1.7 でコンパイルしています。

アプリケーション (デフォルト Android) を閉じる代わりに window.history.back() を呼び出せるように、Android の戻るボタンをオーバーライドしたいと考えています。戻るボタンが押されたときにAndroidがdefaultactivityを強制終了しないようにするにはどうすればよいですか?

「戻るボタンが押されました!!!!」したがって、アプリケーションが閉じられる前にメソッドが起動されます。

これは私がこれまでに持っているものです:

        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        //
        function onDeviceReady() {

            document.addEventListener("backbutton", function(e) {

                console.log("Back button pressed!!!!");                 
                window.history.back();


            }, false);

        }

編集:可能であれば、DefaultActivity.java Android クラスから直接 window.history.back() をシミュレートする方法を説明する回答を喜んで受け入れます!

4

3 に答える 3

6

DefaultActivity.java以下のコードをファイルに追加してデフォルトのAndroidの動作を防ぎ、質問に記載されているJavaScriptコードを維持することで、自分の質問を解決しました。

@Override
public void onBackPressed() {
   return;
}

これが将来同じ問題を抱えている人に役立つことを願っています!

于 2012-04-30T18:57:52.533 に答える
2

I took this approach. I hooked the backbutton event as you have shown. I look to see if this is the first page or not and then ask the user if they want to exit the program or not. This depends on what you want your program to do depending on its state. I did not add the override as you have shown; I didnot seem to need it.

if ($.mobile.activePage.attr('id') === 'firstpage') {
    // Prompt to confirm the exit
} else {
  window.history.back();
}

If they want to exit you can call:

navigator.app.exitApp();

to close your program.

I imagine you still want to allow the user to exit your app. I don't tend to use apps that do not allow an exit of some kind.

Hope this helps you out.

于 2012-05-17T20:14:04.353 に答える
0

それをする必要はありませんでしたが、しようとしましたreturn trueか?

Java SDK と同様に、 を返すTrueと、システムはイベントを正しくキャッチしたと見なし、それを他のイベント リスナーに渡さなくなります。

于 2012-04-30T13:36:37.727 に答える