ios推送分为3种情况
1. 当APP为关闭状态时,点击通知栏消息跳转到指定的页面
2. 当APP在后台运行时,点击通知栏消息跳转到指定的页面
3. 当APP在后台运行时,不会有通知栏提醒,也就不会跳转到指定界面
情况1处理:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self handleToViewController:launchOptions];
return YES;
}
#pragma mark —页面跳转
- (void)handleToViewController:(NSDictionary*)dict
{
NSDictionary *remoteNotification = [dict 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];
}
}
}
}
}