Je suis en train de lire Apple docs sur
La manipulation Locale et à Distance des Notifications
et il me semble avoir des déclarations contradictoires. Quelqu'un peut éclaircir la confusion de ces points? Nous allons parler strictement de la notification à distance (ou en local) pour l'instant.
Les docs disent que si le bouton d'action sur la notification est activée, elle appelle application:didFinishLaunchingWithOptions et passe dans la notification de la charge utile. Plus tard, il dit si l'application est en cours d'exécution au premier plan, il offre la notification par l'application:didReceiveRemoteNotification:. Cela implique, pour moi, que lorsque l'application est backgrounded ou ne fonctionne pas, alors l'application:didFinishLaunchingWithOptions est appelé. Sinon, demande:didReceiveRemoteNotification: est appelé.
Plus tard, il y a un iOS Remarque en disant ce qui suit:
"iOS Remarque: Dans iOS, vous pouvez déterminer si une application est lancée comme une conséquence de l'utilisateur en appuyant sur le bouton d'action ou si la notification a été livré à la déjà en cours d'exécution de l'application, par l'examen de l'état de l'application. Le délégué de la mise en œuvre de l'application:didReceiveRemoteNotification: ou de l'application:didReceiveLocalNotification: la méthode, d'obtenir la valeur de la applicationState de la propriété et de l'évaluer. Si la valeur est UIApplicationStateInactive, l'utilisateur a appuyé sur l'action du bouton; si la valeur est UIApplicationStateActive, la demande a été au premier plan quand il a reçu la notification."
Cela implique pour moi que de l'application:didReceiveRemoteNotification: est appelé à la fois lorsque l'application est déjà mis au premier plan et si l'utilisateur appuie sur le bouton d'action (ou des diapositives de l'action curseur dans iOS 5) à l'avant-plan/le lancement de l'application.
La source de ma confusion peut-être avec la première partie où les docs implique la notification de la charge utile est envoyé avec la demande:didFinishLaunchingWithOptions: méthode ou une incompréhension de ce qu'est une "course" de l'application est (est un backgrounded application considéré comme "en cours"?). La documentation de l'application:didReceiveRemoteNotification: etats, il est appelé à "l'exécution" des applications.
Donc, pour résumer, j'ai pu obtenir des précisions sur:
1) Est d'application:didReceiveRemoteNotification: toujours appelé lorsque l'application est marqué ou lorsque l'utilisateur sélectionne "d'agir" sur la notification? Si non, comment pouvons-nous donner un sens de l'iOS Note sur la détermination de l'État de l'Application d'être actif ou inactif?
2) Est un backgrounded app "en cours", au moins dans le sens de la docs prétendant application:didReceiveRemoteNotification est appelé pour des applications en cours d'exécution?
3) Pour l'achèvement, est un backgrounded application UIApplicationStateInactive ou Actif?