Mon application est en cours d'exécution Je tape sur la notification de sa page d'accueil mais je veux ouvrir une page particulière, mais son travail pour lorsque l'application est en premier plan et en arrière-plan, mais j'ai écrit ce code La vue est affichée pour tout état.Comment naviguer vers une page particulière objectivec lorsque vous appuyez sur la notification que lorsque l'application n'est pas en cours d'exécution?
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)())completionHandler
{
NSDictionary *userInfo = response.notification.request.content.userInfo;
NSDictionary *dict = userInfo[kAps];
NSString *str = [NSString stringWithFormat:@"%@",[dict valueForKey:kAlert]];
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
MyOrderDetailVC *view = [[UIStoryboard storyboardWithName:kMainStoryboard bundle:nil] instantiateViewControllerWithIdentifier:@"MyOrderDetailVC"];
NSString *orderstatus = userInfo[kgcmnotificationorderstatus];
NSString *ordertype = userInfo[kgcmnotificationordertype];
view.isFromSideMenu = YES;
view.isfromViewOrders = YES;
view.status = orderstatus; //[NSString stringWithFormat:@"%@",[dictOrderDetails valueForKey:korderstatus]];
view.isProduct =ordertype;
view.strOrderStatus = orderstatus;
view.strProgramId = @"-1";
if([ordertype isEqualToString: @"0"])
{
view.isBookedOrders = NO;
}
if([ordertype isEqualToString: @"1"])
{
view.isBookedOrders =YES;
}
if([orderstatus isEqualToString:@"0"])
{
view.strOrderStatus = kPending;
}
else if([orderstatus isEqualToString:@"1"])
{
view.strOrderStatus = kConfirmed;
}
else if ([orderstatus isEqualToString:@"2"])
{
view.strOrderStatus = kCompleted;
}
[navController.visibleViewController.navigationController pushViewController:view animated:YES];
[[Shared sharedInstance] showAlertViewInViewController:kAppName message:str buttonTitles:@[OK] viewC:self.window.rootViewController handler:nil];
}
Mais il va " - (void) userNotificationCenter: (UNUserNotificationCenter *) centre didReceiveNotificationResponse: (réponse UNNotificationResponse *) withCompletionHandler: (void (^)()) completionHandler "cette méthode parce qu'elle affiche une vue d'alerte qui est appelée dans cette méthode, mais ne navigue pas vers une autre page qui écrit dans cette méthode seulement. –
Vous pouvez obtenir l'état de l'application par if (application.applicationState == UIApplicationStateInactive) { // ouvert à partir d'une notification push lorsque l'application était en arrière-plan } – iPatel