Pergunta

Existe uma maneira pela qual podemos capturar o clique do botão Home e Voltar no arquivo HTML no aplicativo Android usando o PhoneGAP/JQTouch/JavaScript?

Eu tenho um aplicativo para Android usando o PhoneGap. Quero capturar o clique do botão nativo de casa e traseira do telefone Android na página HTML para sair / voltar graciosamente.

Foi útil?

Solução

Você pode pegar o evento de botão traseiro no PhoneGap, no entanto, não o botão doméstico (essa é uma prática ruim do Android, pois há uma expectativa clara do usuário, independentemente do aplicativo que você está usando sobre o que a Chave Home faz: o envia de volta à sua casa tela! Você não quer substituir essa funcionalidade).

Vou direcioná -lo a pedaços de código no PhoneGap (mais recente fonte! Pull do GitHub para obter a versão mais recente da estrutura do PhoneGap) para orientação.

Primeiro, existe um objeto Java 'Browserkey' ligado ao 'Backbutton' JavaScript Global:

http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/droidgap.java#l291

A definição desta classe está aqui: http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/browsherkey.java

A primeira coisa que você precisa fazer no seu aplicativo (sugiro que você execute isso durante a inicialização do aplicativo) é informar o lado nativo da estrutura que você está substituindo a funcionalidade do botão de volta. Você faria isso em JavaScript com uma chamada simples:

BackButton.override();

A partir daí, você pode anexar um manipulador de eventos ao evento 'backkeydown' do documento para executar a lógica toda vez que o botão traseiro é atingido. Algo assim deve funcionar:

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

Como um adendo, aqui está o código JavaScript que envolve a expedição de eventos traseiros do botão: http://github.com/phonegap/phonegap-android/blob/master/framework/assets/js/keyevent.js

Basicamente, depois de ligar para o backbutton.Override (), o lado nativo da estrutura chamará window.keyevent.backTrigger () sempre que o botão traseiro for atingido.

Outras dicas

Esta amostra de código funciona para o PhoneGap 0.9.5 e posterior (testado em 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);  

O botão doméstico não pode ser tratado. Isso é reservado pelo sistema.

Eu tenho um aplicativo para Android usando o PhoneGap. Quero capturar o clique do botão nativo de casa e traseira do telefone Android na página HTML para sair/voltar graciosamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top