2012-09-06 43 views
47

Soy nuevo en phonegap. He preparado una aplicación de muestra. Mi aplicación tiene 2 páginas, la primera página tiene un botón, cuando se hace clic se abre la segunda página. Está funcionando bien usando el siguiente¿Salir de la aplicación al hacer clic en el botón en el teléfono Android?

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

La segunda página tiene un botón, cuando hace clic, quiero salir de la aplicación. He utilizado el siguiente código

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

test.html,

<!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> 

Pero no está funcionando.

Respuesta

57

Pruebe este código.

<!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> 

Reemplazar src = "cordova-1.5.0.js" con sus PhoneGap js.

+0

reemplace con PhoneGap-1.4.1.js pero no funciona y tengo error como "TypeError no detectada: No se puede llamar al método 'exitApp' de la indefinida en file: ///android_asset/www/test.html: 16 " – user1651572

+0

@ user1651572 Descargue la última versión de phonegap js. Solucionó tu problema. –

+0

¿puedes enviarme la url de la última versión? Busqué el último archivo js que no puedo encontrar ... – user1651572

3

@Pradip Kharbuja

En Córdoba-2.6.0.js (4032 l.):

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

no funciona tio –

10
navigator.app.exitApp(); 

añadir esta línea en la que desea salir de la aplicación.

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

Hay diferentes maneras de cerrar la aplicación, en función de:

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

Siento no poder responder en el comentario. sólo FYI, estos códigos

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

confirmo que no funciona. uso phonegap 6.0.5 y cordova 6.2.0

+0

Hay algún punto para ayudarte a llegar a los comentarios –

0

Utilicé una combinación de las anteriores porque mi aplicación funciona tanto en el navegador como en el dispositivo. El problema con el navegador es que no le permitirá cerrar la ventana de un script a menos que su aplicación haya sido abierta por un script (como 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 
      }); 
Cuestiones relacionadas