He creado Android app utilizando cordova 2.6.0. He implementado un menu característica en mi aplicación a través de html marcas y jQuery que alterna en la interacción con los del dispositivo menubutton. Pero no pude averiguar a alcanzar el siguiente requisito, que se comporte como una aplicación nativa.

Requisito

La menu debe ocultar al pulsar en el botón del dispositivo backbutton si el menu es visible. Si el menu no es visible el backbutton ahora debe actuar de forma normal, que es que, o bien se debe exit la app o ir a la back history.

Este es mi código

document.addEventListener('deviceready', function(){

document.addEventListener('menubutton', function(){
//Toggle Menu
//Which is working fine
});

document.addEventListener('backbutton', function(){
if(menu is visible) {
  //Hide the menu
  //This is also working fine
return false;
} 

//BUT the default action of backbutton has gone. It cannot exit the app , neither it brings to back history.

//return true;
//I have also tried to return boolean true , but facing the same problem.
});

}, false);

El problema real

Si os adjunto un eventlistener para backbutton del dispositivo Back Button está deshabilitado, no funciona de forma normal.

Mi pregunta es

Es document.addEventListener('backbutton', function(){}); más montar en el botón atrás del dispositivo? Cómo deshacerse de él?

Esto está sucediendo en Android 4.1.2 Dispositivo

OriginalEl autor Lekhnath | 2013-09-25

2 Comentarios

  1. 10

    Una vez que haya reemplazado el botón atrás el uso de la escucha, que no realiza el nativo de funcionalidades. Usted tiene que implementar la salida de comportamiento así.

    En su método de reemplazo, utilice el siguiente

    document.addEventListener('backbutton', function(){
      if(menu is visible) {
           //Hide the menu
           //This is also working fine
       return false;
      }
      else //nothing is visible, exit the app
      {
        navigator.app.exitApp();
      }
    });

    Espero que ayude.

    Puedo cambiar algo en java o es completamente impossible?
    Yo no soy consciente de que la exacta posibilidad en java, pero esa es la regla básica de la programación, una vez que haya reemplazado usted necesita para implementar la funcionalidad completa en su propia función.
    Si tengo que hacerlo manualmente, ¿Cómo podría yo exit la aplicación, si no hay nada en history y vaya a back history si es que la hay? por favor, ayuda!
    Incluso si usted no implementar el botón atrás oyente, el botón atrás de la historia debe ser mantenida solo por ti. Como no existe una sola actividad, siempre vas a salir en pulsando el botón back. Usted necesidad de mantener la historia a sí mismo. Ejemplo:En mudarse a otro de páginas vistas, mantenga la adición de las rutas de acceso a una matriz global y elementos pop en pulsando el botón atrás
    También puede navegar utilizando history.go(-1)

    OriginalEl autor SHANK

  2. 0

    Para responder a su pregunta:

    Es el documento.addEventListener(‘boton atrás’, function(){}); en el transcurso de montar en el botón atrás del dispositivo? Cómo deshacerse de él?

    Así usted puede quitar el detector de eventos en la página redirigir a seguir utilizando la funcionalidad nativa de botón atrás en las páginas subsiguientes. Código para quitar el detector de eventos de la siguiente manera:

    document.removeEventListener("backbutton", onBackButton, false); donde onBackButton es la función asociada con el botón atrás del evento.

    OriginalEl autor Gandhi

Dejar respuesta

Please enter your comment!
Please enter your name here