web-dev-qa-db-fra.com

Quittez l'application lorsque vous cliquez sur le bouton dans Android phonegap?

Je suis nouveau chez Phonegap. J'ai préparé un exemple d'application. Mon application a 2 pages, la première page a un bouton, la seconde page s'ouvre lorsque vous cliquez dessus. Cela fonctionne bien en utilisant ce qui suit

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

La deuxième page a un bouton, lorsque je clique dessus, je veux quitter l'application. J'ai utilisé ce qui suit

       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>

Mais ça ne fonctionne pas.

57
user1651572

Essayez ce 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>

Remplacez src = "cordova-1.5.0.js" par votre intervalle téléphonique js.

65
Chirag

Il existe différentes manières de fermer l'application, selon:

if (navigator.app) {
    navigator.app.exitApp();
} else if (navigator.device) {
    navigator.device.exitApp();
} else {
    window.close();
}
18
Ujjwal Kumar Gupta
navigator.app.exitApp();

ajoutez cette ligne à l'endroit où vous souhaitez quitter l'application.

11
Anil Singhania

@Pradip Kharbuja

Dans Cordova-2.6.0.js (L. 4032):

exitApp:function() {
  console.log("Device.exitApp() is deprecated. Use App.exitApp().");
  app.exitApp();
}
3
Shadow
if(navigator.app){
        navigator.app.exitApp();
}else if(navigator.device){
        navigator.device.exitApp();
}
2
Stevko

désolé je ne peux pas répondre en commentaire. juste pour votre information, ces codes

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

je confirme ne fonctionne pas. J'utilise phonegap 6.0.5 et cordova 6.2.0

1
Jamz D. Mozac

J'ai utilisé une combinaison de ce qui précède parce que mon application fonctionne dans le navigateur ainsi que sur l'appareil. Le problème avec le navigateur est qu'il ne vous laissera pas fermer la fenêtre à partir d'un script sauf si votre application a été ouverte par un script (comme 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
            });
        }
0
Helzgate