Exit from app when click button in android phonegap?

AndroidCordovaPhonegap Plugins

Android Problem Overview


I am new to phonegap. I have prepared one sample application. My application has 2 pages, the first page has one button, when clicked the second page will open. It is working fine using the following

         function callAnothePage()
         {
            window.location = "test.html";
         }

The second page has one button, when clicked I want to exit from the application. I used the following

       function exitFromApp()
       {
            navigator.app.exitApp();
       }

test.html code,

<!DOCTYPE html>
<html>

<head>
    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">  
        function onLoad()
        {
            console.log("device reday !!!!")
            document.addEventListener("deviceready", onDeviceReady, true);
        }
        function exitFromApp()
        {
            console.log("in button");
            navigator.app.exitApp();
        }
    </script>
</head>

<body onload="onLoad();">
    <h4><center>Login Page</center></h4>

    <input type="submit" onclick="exitFromApp()" value="exit"/>

</body>
</html>

But it is not working.

Android Solutions


Solution 1 - Android

Try this code.

<!DOCTYPE HTML>
<html>
  <head>
    <title>PhoneGap</title>
	  
	  	<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>      
	    <script type="text/javascript" charset="utf-8">

	     	function onLoad()
	     	{
	        	  document.addEventListener("deviceready", onDeviceReady, true);
	     	}
	
			function exitFromApp()
             {
                navigator.app.exitApp();
             }

  		</script>

  	</head>

  	<body onload="onLoad();">
       <button name="buttonClick" onclick="exitFromApp()">Click Me!</button>
  	</body>
</html>

Replace src="cordova-1.5.0.js" with your phonegap js .

Solution 2 - Android

There are different ways to close the app, depending on:

if (navigator.app) {
    navigator.app.exitApp();
} else if (navigator.device) {
    navigator.device.exitApp();
} else {
    window.close();
}

Solution 3 - Android

navigator.app.exitApp();

add this line where you want you exit the application.

Solution 4 - Android

@Pradip Kharbuja

In Cordova-2.6.0.js (l. 4032) :

exitApp:function() {
  console.log("Device.exitApp() is deprecated. Use App.exitApp().");
  app.exitApp();
}

Solution 5 - Android

if(navigator.app){
        navigator.app.exitApp();
}else if(navigator.device){
        navigator.device.exitApp();
}

Solution 6 - Android

sorry i can't reply in comment. just FYI, these codes

if (navigator.app) {
navigator.app.exitApp();
}
else if (navigator.device) {
  navigator.device.exitApp();
}
else {
          window.close();
}

i confirm doesn't work. i use phonegap 6.0.5 and cordova 6.2.0

Solution 7 - Android

I used a combination of the above because my app works in the browser as well as on device. The problem with browser is it won't let you close the window from a script unless your app was opened by a script (like browsersync).

        if (typeof cordova !== 'undefined') {
            if (navigator.app) {
                navigator.app.exitApp();
            }
            else if (navigator.device) {
                navigator.device.exitApp();
            }
        } else {
            window.close();
            $timeout(function () {
                self.showCloseMessage = true;  //since the browser can't be closed (otherwise this line would never run), ask the user to close the window
            });
        }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1651572View Question on Stackoverflow
Solution 1 - AndroidChiragView Answer on Stackoverflow
Solution 2 - AndroidUjjwal Kumar GuptaView Answer on Stackoverflow
Solution 3 - AndroidAnil SinghaniaView Answer on Stackoverflow
Solution 4 - AndroidShadowView Answer on Stackoverflow
Solution 5 - AndroidStevkoView Answer on Stackoverflow
Solution 6 - AndroidJamz D. MozacView Answer on Stackoverflow
Solution 7 - AndroidPost ImpaticaView Answer on Stackoverflow