Détecter si la demande: didReceiveRemoteNotification: fetchCompletionHandler: a été appelé en appuyant sur une notification dans le Centre de notifications

application: didReceiveRemoteNotification: fetchCompletionHandler:

est différente de

application: didReceiveRemoteNotification:

Comment? à partir de la documentation:

Contrairement à l'application:didReceiveRemoteNotification: la méthode, qui est
appelé que lorsque votre application est en cours d'exécution, le système appelle cette méthode
quel que soit l'état de votre application. Si votre application est suspendue ou pas
en cours d'exécution, le système se réveille ou lance votre application et le met dans le
exécution en arrière-plan de l'état avant d'appeler la méthode. Si l'utilisateur ouvre
votre application dans le système affiche l'alerte, le système appelle cette méthode
à nouveau de sorte que vous savez de la notification de l'utilisateur sélectionné.

Ma lutte est: je veux savoir si la méthode a été appelée par l'utilisateur en appuyant sur un système affiche alerte dans le Centre de Notification, ou à partir d'un silencieux de notification push qui réveille l'appareil. Actuellement, aussi loin que je peux voir, il n'y a pas de moyen évident de les différencier.

- (BOOL)application: didFinishLaunchingWithOptions:

Le suivi de l' launchOptions dans la méthode ci-dessus n'est pas une solution car elle est appelée uniquement si l'application est suspendue/pas en cours d'exécution en arrière-plan. Si il fonctionne dans le fond elle n'est pas appelée.

InformationsquelleAutor Devfly | 2014-04-19