Los oyentes de eventos window.open que no funcionan en Android 4.4.2

Tengo una aplicación PhoneGap que utiliza InAppBrowser para cargar la experiencia de inicio de sesión de Google. Como tal, necesito un detector de eventos que detecte cuando el navegador cambia de ubicación. La configuración de abajo funciona perfectamente bien en todas las versiones de Android excepto para 4.4.2, lo mejor que puedo decir; El oyente del evento dispara y todo es bueno.

Sin embargo, en Android 4.4.2 no puedo conseguir que ningún oyente de eventos dispare por la ventana; Loadstart, onload, onscroll, etc. Nada parece disparar. No parece encontrar soluciones en Google o StackOverflow, por desgracia.

No estoy seguro de qué información adicional es necesaria / útil, pero feliz de proporcionar nada.

var auth_window = window.open(auth_url, '_blank', 'location=no,toolbar=no'); auth_window.addEventListener('loadstart', function(event) { alert("blah") }) 

***Actualizar***

He podido conseguir que el oyente dispare retrocediendo de InAppBrowser y abriéndolo otra vez. No tengo ni idea de por qué funcionaría en este caso, pero no de otra manera, sin embargo. Cualquier ayuda aquí sería muy apreciada.

Constantemente llamar a exec obligará a procesar los mensajes.

 setInterval(function () { cordova.exec(null, null, '', '', []) }, 200); 

Estoy utilizando este hack en meteor-phonegap-oauth, https://github.com/jperl/meteor-phonegap-oauth/blob/badfb932bb0b525a32c35115eb75edb8d21bbf57/patch_window.js#L20-L29

Esto también solucionará el problema de que los complementos no invocan su devolución de llamada hasta la siguiente acción del complemento, por ejemplo: No se pueden usar métodos asíncronos en Cordova 3.4. Onsuccess no se llama después de la primera llamada del método de complemento

Es posible que tenga una versión antigua de PhoneGap / Cordova que no es compatible con Android 4.4.x muy bien. En ese caso debe actualizar PhoneGap / Cordova.

Prueba esto :

 window.open("http://google.com", '__blank'); 
 var auth_window = window.open(auth_url, '_blank', 'location=no,toolbar=no'); 

Creo que el tercer parámetro del método anterior es Opciones, y sólo hay una opción que es "ubicación" sí o no, no hay ninguna opción como "barra de herramientas" para este método.

Así que quita la opción adicional después de la coma, y ​​pienso que tú estarías bien.

Aquí está la explicación de la documentación de la brecha del teléfono

Opciones: opciones para InAppBrowser (String) (Opcional, Predeterminado: "location = yes")

La cadena de opciones no debe contener ningún espacio en blanco, cada nombre de función y valor deben estar separados por una coma. Sólo se admite el valor siguiente:

> Location – establecida en 'yes' o 'no' para activar o desactivar la barra de ubicaciones para el InAppBrowser

  • Detectar si el navegador tiene teclado / teclas de flecha en la página web
  • XmlHttpRequest problema de publicación doble en Android
  • Aplicación desordenada en el teclado emergente
  • ¿Cómo Deviceready de manera correcta en la aplicación iónica?
  • Uncaught (en Promise) DOMException: play () solo puede ser iniciado por un gesto del usuario
  • Límite de uso del mapa Google V3 en las aplicaciones Phonegap
  • Desactivar la función "Touch to Search" de Chrome 43 para móviles mediante programación
  • ¿Qué es clobbering window.page en mi Galaxy S3?
  • JavaScript caret position
  • Lectura de archivos utilizando Cordova File Plugin
  • ¿Puedo usar Javascript para obtener la brújula para iOS y Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.