/ / jQuery Mobile não funciona em dispositivos Android 5.0 ou superiores que tenham o Android System WebView 45.0.2454.95 instalado - javascript, android, jquery, jquery-mobile, android-webview

O jQuery Mobile não funciona em dispositivos Android 5.0 ou superiores que tenham o Android System WebView 45.0.2454.95 instalado - javascript, android, jquery, jquery-mobile, android-webview

Nós temos este problema onde a nossa aplicação temparou de funcionar em dispositivos Android 5.0 ou superiores, pois o Google lançou a versão mais recente do Android System WebView 45.0.2454.95. Se desativarmos esta versão do WebView acessando as configurações do dispositivo, os aplicativos, o Android System WebView e clicando em Desativar: o aplicativo funcionará novamente. No entanto, isso não é satisfatório para alguns de nossos clientes e realmente precisamos encontrar uma correção onde funcione com a versão mais recente do Android System WebView.

Nosso aplicativo faz uso pesado de jQuery e jQuery Mobile. Atualmente, usamos o jQuery 1.7.1 e o jQuery Mobile 1.1.0. Não podemos atualizar facilmente para uma versão mais recente.

Quando uma página é carregada no aplicativo, qualquer método chamado dentro de um seletor jQuery não é executado, por exemplo,

$(function() { //Your code here });

Esse código é executado com sucesso quando a versão antiga do WebView é usada, mas não quando a versão mais recente é usada. A tentativa de chamar o código fora do seletor resultou em outros problemas.

Durante minhas investigações até agora, eu tenhodescobri que o problema parece vir de algo no jQuery Mobile como quando eu removo a referência ao jquery.mobile.js, o código então é executado novamente. No entanto, como você pode esperar, os problemas ocorrem devido ao fato de o jQuery Mobile ser uma parte integral de nosso aplicativo.

Alguém sabe de algum problema com jQuery Mobile sobre a versão mais recente do Android System WebView que poderia estar causando isso?

Respostas:

1 para resposta № 1
$.mobile.pushStateEnabled=false;

Exemplo:

<script type="text/javascript">
$( document ).ready(function() {
$.mobile.pushStateEnabled = false;
});
</script>

0 para resposta № 2
<script type="text/javascript">
$(document).bind("mobileinit", function(){
$.mobile.pushStateEnabled = false;
});
</script>

<script src="jquery-mobile.js"></script>