Google Analytics interfiere con history.back () en el navegador android?

Tengo una aplicación móvil html5 donde todo existe en una sola página y uso history.back / popstate / etc para cambiar el contenido de la página (a través de jQuery Mobile). Estoy utilizando Google Analytics para realizar un seguimiento de varios eventos, y en una página de seguimiento si el usuario sale a través de un botón en particular:

$('#my-back-button').bind('tap', function() { _gaq.push(['_trackEvent', 'mycategory', 'myaction']); history.back(); return false; }); 

En el navegador androide 2.2 history.back () se llama pero onpopstate no se dispara y la página no se cambia. Si pongo window.onpopstate = function() { alert("!"); }; window.onpopstate = function() { alert("!"); }; Justo antes de la historia.back (), no veo ninguna alerta.

Si invierto las dos líneas (history.back () primero, entonces _gaq.push), parece que funciona, pero no puedo confiar en este tipo de pedidos a través de mi código.

No se están lanzando excepciones. Funciona bien en iOS y Chrome de escritorio.

¿Alguna idea de por qué history.back () no funciona después de una llamada de Google Analytics?

Trate de envolver la llamada a _ gaq.push() en un tiempo de espera asíncrono de 0:

 $('#my-back-button').bind('tap', function() { setTimeout(function() { _gaq.push(['_trackEvent', 'mycategory', 'myaction']); }, 0); history.back(); return false; }); 

Esto permitirá que history.back() ejecute primero antes de que Google Analytics afecte potencialmente a la pila del historial.

Hm, está bien una muy desagradable: ¿qué pasa si envuelves _gaq.push () en una nueva función y dejamos history.go () justo donde está?

Tal vez la llamada a google analytics añade una nueva entrada a la historia de la pila y history.back () sólo te lleva a la página que está en este momento.

O GA da un nuevo alcance a la historia.

Intente llamar a history.back () dos veces o utilice top.history.back () o window.history.back () o self.history.back ()

  • Android WebView - Fuga de memoria de JavaScript
  • WebView Javascript cross domain de un archivo HTML local
  • Trabajadores web en navegadores móviles
  • Android WebView personalizado no logra encontrar funciones de javascript definidas en HTML cargado
  • React Native no admite el desarrollo en Windows (todavía)?
  • React Native - Aplicación de Android que funciona en Debug, falla en la versión
  • Depuración de javascript en tablets / teléfonos Android?
  • Cómo formatear un bloque <pre> HTML largo adecuado para dispositivos de anchura limitada como iPhone
  • Html5 requiere validación trabajando muy bien en el navegador pero no en la aplicación de phonegap
  • Mostrando el teclado virtual de Android cuando un campo es .focus () 'd usando javascript
  • Cómo salir de una aplicación web de pantalla completa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.