d'abord toutes les notifications push ne sont pas « fort », si vous laissez simplement un sit de notification assez longtemps (par exemple le téléphone désactivé pendant plusieurs jours), il va se jeter. Vous devez effectuer un traitement back-end personnalisé pour conserver le contenu envoyé dans les notifications. Dans le protocole UIApplicationDelegate
, il y a application:didFinishLaunchingWithOptions:
. Si votre application est lancée par l'utilisateur en appuyant sur le bouton droit dans une alerte de une notification push, le dictionnaire launchOptions
lié à l'appel de méthode contiendra des informations concernant cette notification; Si votre application est déjà en cours d'exécution, application:didReceiveRemoteNotification:
(également dans le protocole délégué) sera appelée à la place.
Ainsi,
Si l'application est lancée, et vous mettre en œuvre application:didReceiveRemoteNotification:
alors oui vous obtenez la charge utile. Sinon, rien ne se passe. Si l'application n'est pas démarrée au moment où la notification est envoyée, l'utilisateur appuie sur l'alerte de la notification et lance votre application, votre application reçoit la charge si elle implémente application:didFinishLaunchingWithOptions:
. Sinon, vous n'obtiendrez rien.
J'ai remarqué que quelque temps avant aujourd'hui (07/03/2012) 'launchOptions' n'est plus utilisé. Après l'ouverture de l'application, 'didReceiveRemoteNotification' est appelée à la place. – Jacksonkr
Si aucune alerte n'est incluse, la méthode didReceiveRemoteNotification: n'est jamais appelée pour les applications en arrière-plan. Il n'est pas possible avec iOS 6 de recevoir des charges utiles sans interaction de l'utilisateur lorsque votre application n'est pas au premier plan. La documentation mentionne ce fait, quoique discrètement. https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW4 –
+1 Grande Explication !! – swiftBoy