2

Puis-je d'une manière ou d'une autre détecter l'arrivée d'une notification push et la gérer en utilisant cordova lorsque la notification arrive et que l'application est fermée à ce moment? J'utilise Cordova com.clone.phonegap.plugins.pushplugin mais quand la notification arrive et l'application est fermée alors les écouteurs d'événements enregistrés par moi en utilisant le code javascript plugin ne sont pas 'vivants' et je ne peux pas détecter l'arrivée. Est-il possible de réaliser cela d'une autre manière en utilisant Cordova?Comment gérer les notifications push avec Cordova à mesure qu'elles arrivent et que l'application est fermée

+0

me plaisez la plate-forme sur laquelle vous travaillez. – Ajoy

Répondre

4

Si vous demandez iOS, alors non. Votre application ne peut pas gérer les notifications des utilisateurs en arrière-plan. Si l'utilisateur appuie sur la bannière de notification, votre application s'ouvrira et vous obtiendrez un rappel avec la charge utile de notification qui peut être transmise à JavaScript.

Si vous souhaitez traiter les notifications de fond silencieux, cela doit être fait en natif car l'exécution de JavaScript est suspendue en arrière-plan AFAIK. Vous pouvez implémenter une file d'attente qui stocke simplement une notification d'arrière-plan, puis la distribue à JavaScript lorsque l'application revient à l'état actif.

0

Je ne suis pas sûr de cette solution, mais avez-vous essayé ceci: -

Ajouter ce dans didReceiveRemoteNotification méthode

NSString* jsString = [NSString stringWithFormat:@"localStorage.NotificationId=%@;", dynamicNotificationId]; 
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString]; 
0

Utilisez le PushPlugin officiel.

Dans Android, une notification sera créée dans la barre d'état si l'application est fermée, sinon la charge utile est transmise à votre application

0

Vous pouvez déclencher l'événement sur (« notification ») lorsque l'application est fermé à l'aide du plug-in PhoneGap-plugin-push> 1.6.2 et changer votre réponse backend à:

{ 
    notification : { 
     title : 'yourTitle', 
     message : 'yourMessage' 
    } 
} 

à

{ 
    data : { 
     title : 'yourTitle', 
     message : 'yourMessage', 
     content-available : "1" //only for IOS 

    } 
}