這個分為3種情況
1. 當APP為關閉狀態時,點擊通知欄訊息跳轉到指定的頁面
2. 當APP在後台運行時,點擊通知欄訊息跳轉到指定的頁面
3. 當APP在後台運行時,不會有通知欄提醒,也就不會跳轉到指定介面
針對1.的處理
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [self jumpToViewController:launchOptions]; return YES;}#pragma mark —頁面跳轉- (void)jumpViewController:(NSDictionary*)tfdic{ NSDictionary *remoteNotification = [tfdic objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if ([CHPaInterface isUserLogin]) { for (NSString *tfStr in remoteNotification) { if ([tfStr isEqualToString:@"careline"]) { ViewController *_viewController = [[ViewController alloc]init]; [_viewController loadAPNSInfoDic:remoteNotification]; UINavigationController *nav= (UINavigationController *)self.window.rootViewController; [nav pushViewController:_viewController animated:YES]; } } }}
針對2.的處理
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ //當APP在前台運行時,不做處理 if( [UIApplication sharedApplication].applicationState == UIApplicationStateActive) { } //當APP在後台運行時,當有通知欄訊息時,點擊它,就會執行下面的方法跳轉到相應的頁面 else if ([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) { if ([CHPatyInterface isUserLogin]) { NSLog(@"收到推送:%@",userInfo); for (NSString *tfStr in userInfo) { if ([tfStr isEqualToString:@"careline"]) { ViewController *_viewController = [[ViewController alloc]init]; [_viewController loadAPNSInfoDic:userInfo]; UINavigationController *nav= (UINavigationController *)self.window.rootViewController; [nav pushViewController:_viewController animated:YES]; } } } }}