Exit from app when click button in android phonegap?
AndroidCordovaPhonegap PluginsAndroid 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
});
}