Capturando o botão nativo cliques no telefone Android em JavaScript
-
25-09-2019 - |
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.
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:
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.