Pregunta

¿Hay un camino por el cual podemos captar el clic de botón HOME y de regreso en el archivo HTML en aplicaciones para Android usando PhoneGap / jQTouch / javascript?

Tengo una aplicación para Android usando PhoneGap. Quiero capturar el clic de botón INICIO nativa y parte posterior del teléfono Android en la página HTML para salir / volver con gracia.

¿Fue útil?

Solución

Puede capturar el evento en el botón ATRÁS PhoneGap, sin embargo no el botón HOME (esto es una mala práctica de Android ya que hay una expectativa de usuario clara, independientemente de la aplicación que está utilizando sobre lo que hace la tecla Inicio: lo envía de vuelta a pantalla de inicio! Usted no desea anular esta funcionalidad).

Yo le dirigirá a piezas de código en PhoneGap (fuente ÚLTIMO! Trago de GitHub para la versión más reciente del marco PhoneGap) para recibir orientación.

En primer lugar, hay un 'BrowserKey' objeto Java enlazado al 'BackButton' JavaScript mundial:

http: // github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/DroidGap.java#L291

La definición de esta clase está aquí: http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/BrowserKey.java

Lo primero que hay que hacer en su aplicación (I sugieren ejecutar este durante la inicialización de la aplicación) es dejar que el lado nativo del marco Sabe usted está sustituyendo la funcionalidad del botón ATRÁS. Se podría hacer esto en Javascript con una simple llamada:

BackButton.override();

A partir de ahí en adelante, se puede conectar un controlador de eventos para el evento del documento 'backKeyDown' para ejecutar la lógica cada vez que el botón Atrás tiene éxito. Algo como esto debería funcionar:

document.addEventListener('backKeyDown', function(e) {
  alert('you hit the back key!');
}, false);

Como una adición, aquí está el código JavaScript que envuelve el envío de eventos de botón de vuelta: http://github.com/phonegap/phonegap-android/blob/master/framework/assets/js/keyevent.js

Básicamente, después de llamar BackButton.override (), el lado nativo del marco llamará window.keyEvent.backTrigger () cada vez que el botón Atrás tiene éxito.

Otros consejos

Este ejemplo de código funciona para PhoneGap 0.9.5 y más tarde (probado en 0.9.6):

    document.addEventListener("menubutton", function () { 
        alert('Menu button');
    }, false);  

    document.addEventListener("searchbutton", function () { 
        alert('Search button');
    }, false);                      

    document.addEventListener("backbutton", function () { 
        alert('Back button');
    }, false);  

botón de inicio no puede ser manejado. Eso está reservado por el sistema.

Tengo una aplicación para Android usando PhoneGap. Quiero capturar el clic de botón INICIO nativa y parte posterior del teléfono Android en la página HTML para salir / volver con gracia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top