2010-07-02 6 views
15

Considérant que je reçois une notification poussée sur mon iPhone.iOS - Gestion des notifications push avec APNS

Qu'est-ce qui se passe:

  1. Si l'application est lancée: est-il un moyen d'obtenir la charge utile? Est-ce que je vois la notification sur mon écran?
  2. Si l'application n'est pas démarrée, existe-t-il un moyen d'obtenir la charge utile?

Thx pour vos réponses

Répondre

34

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.

+3

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

+0

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 –

+0

+1 Grande Explication !! – swiftBoy

Questions connexes