comment recevoir une notification locale dans ios lorsque l'application est fermée

J'utilise la notification locale pour le système d'alarme mais je suis confronté à un problème lors de la gestion de la notification locale. Lorsque je clique sur notification d'alarme (lorsque l'application est fermée), elle lance l'application mais le problème est qu'il doit aller à didFinishLaunchingWithOptions . de la fonction dans appDelegate (j'ai utilisé des points d'arrêt pour vérifier). J'utilise storyboard avec controller de navigation, je veux ouvrir un controller de vue spécifique sur la notification cliquez lorsque l'application est fermée.

mais quand je lance cette application normalement, il va à l'intérieur de la fonction didFinishLaunchingWithOptions .

Veuillez suggérer.

Toute aide serait appréciée.

main.m

 #import "DEMOAppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSSsortingngFromClass([DEMOAppDelegate class])); } } 

DEMOAppDelegate.m

 #import "DEMOAppDelegate.h" @implementation DEMOAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UILocalNotification *localNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey]; if (localNotif) { NSLog(@"Recieved Notification %@",localNotif); } return YES; } - (void)applicationWillResignActive:(UIApplication *)application { } - (void)applicationDidEnterBackground:(UIApplication *)application { } - (void)applicationWillEnterForeground:(UIApplication *)application { } - (void)applicationDidBecomeActive:(UIApplication *)application { } - (void)applicationWillTerminate:(UIApplication *)application { } -(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:notification.alertAction message:notification.alertBody delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } @end 

Ce n'est pas possible, lorsque votre application ne lance pas de notification, elle ne réagira pas directement à la notification.

didFinishLaunchingWithOptions contiendra des informations sur la notification uniquement lorsque l'user a ouvert votre application via cette notification. S'il l'annule et ouvre votre application via l'icône du tableau de bord, vous ne verrez pas cela dans cette méthode.

Malheureusement, si vous avez besoin de réagir à toutes les notifications de la dernière fois que l'user a ouvert l'application, la seule façon est de créer votre propre logique de suivi et d'get tous les events du passé en fonction de l'heure. Il est également impossible d'get la list des notifications que vous avez programmées pour votre application. Il est donc conseillé de créer une logique événementielle basée sur le time et d'utiliser la notification par dessus, mais toute la logique se déroule à votre rythme. code basé sur De cette façon, même si l'user désactive les notifications, votre logique critique fonctionnera.

Lorsque l'application s'exécute en arrière-plan, vous recevrez une notification via l' application:didReceiveRemoteNotification . Vous pouvez rassembler ces notifications dans votre application et les traiter sur applicationDidBecomeActive si vous voulez faire quelque chose de spécifique à l'intérieur de votre application après que l'user revient à l'application en arrière-plan.