quitar pantalla p20 p10 ocultar navegacion lite flotante fija dejar como botón boton barra android cordova jquery-mobile back-button-control

android - pantalla - ocultar barra de navegacion huawei p20 lite



¿Cómo desactivo el botón Atrás de Android en una página y cambio para salir en todas las páginas? (4)

Estoy desarrollando una aplicación para Android usando Phonegap que interactúa con mi sitio Drupal. He reasignado el botón "Atrás" de Android para solicitar al usuario que cierre sesión en el servidor de Drupal. Sin embargo, solo quiero que se deshabilite en la página de inicio de sesión (por razones obvias). Puedo hacer que funcione, pero solo hasta que el usuario cierre la sesión y luego, una vez en la página de inicio de sesión, el botón se vuelve a asignar como un botón de cierre de sesión. Aquí está el código que tengo hasta ahora:

<head> <script> /* Wait until device is ready to re-assign Back button */ document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { document.addEventListener("backbutton", onBackKeyPress, false); } function onBackKeyPress() { /* If the current page is the login page, disable the button completely (aka do nothing) */ if ($.mobile.activePage.attr(''id'') == ''login_page'') { } /* Else, execute log off code */ else { if (confirm("Are you sure you want to logout?")) { /* Here is where my AJAX code for logging off goes */ } else { return false; } } } </script> </head>

El problema es que el botón Atrás no se vuelve a asignar. No puedo encontrar una manera de volver a ejecutar el código anterior cuando el usuario cierra la sesión y termina en la página de inicio de sesión.

Si alguien está dispuesto a proporcionar una solución para esto, ¡estaré muy agradecido!


Prueba esto:

document.addEventListener("backbutton", function(e){ if($.mobile.activePage.is(''#login_page'')){ e.preventDefault(); } else { if (confirm("Are you sure you want to logout?")) { /* Here is where my AJAX code for logging off goes */ } else { return false; } } }, false);


la disposición del dispositivo es importante. Si no se utiliza, a veces puede obtener el bloqueo del botón Atrás, a veces no. A menudo en la depuración funciona, en la producción no.

document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { document.addEventListener("backbutton", function (e) { e.preventDefault(); }, false ); }

EDITAR 2013-11-03 El error común es que el desarrollo se realiza en el escritorio y se excluye el script cordova. Uno se olvida de incluir el script cordova para la versión móvil.


Tiene que anular la acción del botón Atrás en el dispositivo listo ... aquí hay un ejemplo completo de trabajo "index.html"

<!DOCTYPE html> <html> <head> <title>Back Button</title> <link rel="stylesheet" type="tex`enter code here`t/css" href="style.css"> <script> function getTitle() { document.getElementById("ct").innerHTML = "DEMO: " + document.title; } </script> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" charset="utf-8"> // Wait for device API libraries to load // function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); getTitle(); } // device APIs are available // function onDeviceReady() { // Register the event listener document.addEventListener("backbutton", onBackKeyDown, false); } // Handle the back button // function onBackKeyDown() { alert(''Backbutton key pressed''); console.log(''Backbutton key pressed''); } </script> </head> <body onload="onLoad()"> <ul id="nav"> <li><a href="index.html">&larr; Back</a></li> <li><a href="#" id="ct" onclick="location.reload();"></a></li> </ul> </body> </html>

Usé este código y el botón Atrás se anula finalmente ...

Ref -> https://github.com/amirudin/PhoneGapPluginDemo/blob/master/www/evt-backbutton.html


document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { document.addEventListener("backbutton", function (e) { e.preventDefault(); }, false ); }