example disable backbutton android ios cordova back-button back-button-control

android - disable - document addeventlistener('' backbutton



Phonegap-navigator.app.backHistory() no funciona en el botón HTML back (4)

Si usa el atributo data-rel = "back" en un anclaje, cualquier clic en ese anclaje imitará el botón Atrás, retrocediendo una entrada en el historial e ignorando el href predeterminado del anclaje.

En mi aplicación estoy usando phonegap 2.6. Para el botón de retroceso, estoy usando la siguiente función

document.addEventListener("backbutton", onBackKeyDown, false); function onBackKeyDown() { alert("hello"); navigator.app.backHistory(); } document.addEventListener(''deviceready'', onDeviceReady, true);

La función anterior funciona bien cuando hago clic en el botón de retroceso de hardware del dispositivo . Pero cuando hago clic en el botón Atrás, no funciona.

He diseñado mi botón Atrás de la siguiente manera:

<a class="ui-link" href="#" rel="external" onclick="onBackKeyDown()"> <img src="images/icon-back.png" alt="Phone" border="0"> </a>

Pero este botón funciona bien para este navigator.app.exitApp(); (salida de la aplicación).

//Working Fine function onBackKeyDown() { navigator.app.exitApp(); } //Not Working function onBackKeyDown() { navigator.app.backHistory(); }

pero no funciona para navigator.app.backHistory(); .


depende de dónde se encuentre: en mi teléfono con Windows 8.1 lumia 925, funciona history.go (-1); , mientras que navigator.app.backHistory (); causa una excepción antes de colisionar.

En mi Android (creo que la mayoría), navigator.app.backHistory (); trabaja apropiadamente.


He intentado 3 cosas por separado cuando me enfrenté a la misma situación:

  • window.history.back()

  • navigator.app.backHistory();

  • History.go(-1);

Individualmente, ninguno de estos resuelve el problema. Puse las 3 cosas juntas y para mi sorpresa funcionó. Realmente no sé qué hay detrás.

Luego disminuí a dos funciones y eliminé:

  • window.history.back()

Ahora estoy usando esta función y está funcionando bien.

//Works Fine function onBackKeyDown() { history.go(-1); navigator.app.backHistory(); }


Resuelto Deja de obtener "TypeError: navigator.app no ​​está definido"

Una función que creé que primero verifica en qué dispositivo estás y luego aplica el guión relevante:

function onBackKeyDown() { var userAgent = navigator.userAgent || navigator.vendor || window.opera; if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)) { // IOS DEVICE history.go(-1); } else if (userAgent.match(/Android/i)) { // ANDROID DEVICE navigator.app.backHistory(); } else { // EVERY OTHER DEVICE history.go(-1); } }

Llame a la función agregando esto a su enlace / botón:

onclick="onBackKeyDown()"