Contexto
Estou tentando simular um WebView usando Intel XDK. Antes de ler algum post no Stack Overflow eu li que a melhor maneira de arquivar este está usando um window.location = "url";
. Funcionou como um encanto.
Problema
Agora eu quero vincular a backbutton hardware, de modo que o usuário confirme lata é que ele quer ou não para fechar o aplicativo. O problema é que só funciona se o window.location
não executar.
Código
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script src="cordova.js"></script>
<script>
window.location = "https://google.com";
var tried = false;
document.addEventListener("backbutton", backButton, false);
function backButton(){
if (tried){
navigator.app.exitApp();
}
else {
alert('TEST: Next time APP should close');
tried = !tried;
}
}
</script>
</head>
<body>
</body>
</html>
Resultados
Comentando window.location
Em execução window.location
Obrigado!
Cada página tem seu próprio javascript, se você trocar a página todo o javascript será perdido.
Se você quiser fazê-lo funcionar, você precisa de ter o mesmo código de manipulador backbutton em qualquer página onde você redirecionar usando location.href, e você vai precisar para cordova.js ligação também.
Isso significa que você só pode fazê-lo funcionar em páginas que você pode controlar o código que eles carregar, não no Google.
Se você quiser fazer isso em qualquer página, mesmo em páginas que você não pode controlar, então você não pode usar o código javascript de cordova, pois ele irá desaparecer. Você precisará alterar a forma como o código de java de cordova controla o comportamento do botão Voltar. feito sobre este método :
Você vai ter que detectar o KeyEvent.KEYCODE_BACK
e mostrar um diálogo nativa para fechar o aplicativo lá
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras