Cordova detecta el arranque en frío de la Notificación de Empuje

Tengo una aplicación cordova (codova (3.4.0) que se ejecuta en iOS y pronto también en Android. Las notifications push se implementan y funcionan. Tengo problemas para detectar cuándo se inició la aplicación mediante una notificación push y networkingirigir la aplicación a la derecha página.

Nota: Esto no se refiere a iniciar la aplicación desde una notificación push cuando la aplicación se ejecuta en segundo plano. ¡Solo cuando la aplicación está completamente cerrada!

Ahora tengo el siguiente flujo de trabajo:

Arranque regular:

  • Espere a que cordova.js dispare el evento ondeviceready.
  • En el evento ondeviceready networkingirigir a la vista de inicio de mi aplicación (a través de window.location.hash)

Inicio frío de la aplicación desde la notificación push:

  • Espere a que cordova.js dispare el evento ondeviceready.
  • En el evento ondeviceready networkingirigir a la vista de inicio de mi aplicación (a través de window.location.hash)
  • El complemento inicia y desencadena una function javascript en mi aplicación llamada notificación recibida
  • En la function de notificación recibida networkingirigir a una vista basada en la notificación de inserción

Como puede ver el escenario de inicio de la aplicación fría que va a la vista de inicio, lo cual es innecesario y hace que el usuario espere a que la primera vista se cargue, solo se networkingirigirá de nuevo.

El problema es que cuando Firefox se dispara, mi código javascript no está al tanto de la próxima notificación push, así que estoy buscando una forma de evitar esto.

¿Hay alguna forma de pasar parameters adicionales al evento Deviceready cordova? ¿O alguien tiene otra idea o solución para abordar este problema?

Supongo que podría solucionarlo:

var coldstart = true; // Update flag if app coldstart document.addEventListener("pause", function() { coldstart = false; }, false); 

Finalmente logré resolver esto. Parece que durante el inicio, en el siguiente método, el parámetro launchOptions indica si la aplicación se inició desde una notificación push o no.

 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { ... } 

En el método anterior, configuré la url de inicio para mi aplicación y proporcioné un parámetro url adicional si la aplicación se inició desde una notificación push. Entonces ahora tengo el siguiente escenario que resuelve mi problema:

  • En el evento ondeviceready lea el parámetro de inicio.
  • Si la aplicación se inició desde una notificación push, no haga nada y espere a que el complemento networkingireccione a la vista correcta
  • Si la aplicación no se inició desde una networkingirección de notifications push a la vista de inicio.

Espero que ayude a alguien.