Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent Android from closing web-application when backbutton is pressed?

I am developing a HTML5 web-application and compiling it with Cordova (phonegap) 1.7.

I want to override the Android backbutton so that I can call window.history.back() instead of closing the application (default Android). How can I prevent Android from killing the defaultactivity on back button pressed?

I get the "Back button pressed!!!!" in logcat, so the method is fired before the application is closed.

This is what I have so far:

        // 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);

        }

EDIT: I am willing to accept an answer explaining a way to simulate the window.history.back() directly from the DefaultActivity.java android class if that is possible!

like image 978
Sindre Avatar asked Feb 20 '23 16:02

Sindre


1 Answers

I solved my own question by adding the code below to the DefaultActivity.java file to prevent the default android behavior, and keeping the JavaScript code as stated in the question:

@Override
public void onBackPressed() {
   return;
}

I hope this helps someone in the future with the same problem!

like image 163
Sindre Avatar answered Apr 30 '23 19:04

Sindre