Lors de la réception d'un UILocalNotification
- La méthode
application:DidReceiveLocalNotification
est appelée lorsque l'application est en arrière plan. - Lorsque l'application est en arrière-plan, il s'ouvre l'application, puis des appels
application:DidReceiveLocalNotification
.
Comment puis-je déterminer lequel de ces scénarios prennent place? Je tiens à les traiter différemment.
Si l'application est en arrière-plan, alors l'utilisateur a indiqué qu'ils veulent regarder lors de l'événement. Donc, en application:DidReceiveLocalNotification
je ne veux pas leur demander à nouveau, j'ai juste envie de les prendre à l'événement.
Mais si l'application est au premier plan lors de la notification des incendies et des appels application:DidReceiveLocalNotification
, je veux demander à l'utilisateur si elles veulent voir l'événement.
En essence, j'aurais:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
if (appLauncedFromBackground)
// go to event
else
// ask if user wants to view event
}
J'ai pensé écrire une valeur booléenne d'une NSUserDefault à l'intérieur d' applicationWillEnterForeground:application
puis lecture et remise à zéro à l'intérieur de application:DidReceiveLocalNotification
. Mais j'ai pensé que si il y avait un moyen de les tester, ce serait beaucoup mieux la route.
Merci, Marc
EDIT ******************************
Grâce xuzhe mais qui n'est pas destiné à fonctionner dans cette situation. Voici un peu plus de détails qui peut expliquer pourquoi il l'habitude de travailler et peut-être aider quelqu'un à répondre à cela pour moi:
L' UILocalNotification
que je suis en train de ici est un événement comme un événement de calendrier qui est prévue pour le feu à un temps sélectionné par l'utilisateur, de sorte lors de la planification de la notification je n'ai aucune idée de ce que l'utilisateur va être fait lors de la notification des incendies. Je suis l'aide de la userInfo de la notification de stocker des données sur l'événement qui est prévue, mais la définition de la valeur comme inBackground comme l'a suggéré l'habitude de travailler.
Je sais qu'il sera l'une des deux situations, si l'utilisateur décide de "voir" l'événement. (tout cela va supposer que l'application est dans l'arrière-plan ou au premier plan et ne PAS cesser de fumer).
1 - Si il se déclenche alors que l'application n'est pas utilisé && l'application est en arrière-plan et ne pas cesser de fumer, iOS va informer l'utilisateur qu'un événement s'est produit et fournir une option pour aller à la responsable de l'application (qui est le mien dans ce cas). À ce point, en supposant que l'utilisateur dit "oui, prends-moi pour ce soft cool" il va ouvrir l'application à partir de l'arrière-plan et l'appel de l'application:DidReceiveLocalNotification où je peux obtenir tous les notification userInfo.
2 - L'utilisateur, par hasard, se trouve être dans mon application après la date prévue de l'événement a lieu. À ce point de l'application:DidReceiveLocalNotification méthode est appelée de nouveau où je peux obtenir tous les notification userInfo.
Mais c'est à ce point que je veux savoir lequel des deux scénarios a juste pris place 1 ou 2.
Espérons que cela donne des détails supplémentaires sur mon utilisation de l' UILocalNotification
aidera à répondre à cette question. Merci à l'avance de la marque de
FIN EDIT ****************************