iOS推送、3D touch、分享等进入APP的不同跳转方式

原创 2017年01月03日 23:04:53

一、当前以极光推送为例,如何从通知栏点击进入到APP的不同页面

APPDelegate.m文件

实现接受到远程推送的通知方法,在我们点击通知栏的时候,这个方法仍然会走一次(这里介绍的方法是改变root后进行跳转,也可直接跳转)

//IOS 7 Support Required --》接受到远程通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

    // IOS 7 Support Required
    if (application.applicationState ==UIApplicationStateActive) {
       // 转换成一个本地通知,显示到通知栏,你也可以直接显示出一个alertView,只是那样稍显aggressive:)
        UILocalNotification *localNotification = [[UILocalNotificationalloc] init];
        localNotification.userInfo = userInfo;
        localNotification.soundName =UILocalNotificationDefaultSoundName;
        localNotification.alertBody = [[userInfoobjectForKey:@"aps"]objectForKey:@"alert"];
//        localNotification.fireDate = [NSDate date];

        [[UIApplicationsharedApplication] scheduleLocalNotification:localNotification];

    } else {

        [JPUSHServicehandleRemoteNotification:userInfo];

        [[AccountManagersharedInstance]changeRootViewControllerWithHome]; //改变rootviewController为主页面(我这里为tabbar的第一个页面)

       MyNavigationViewController *myNavi = self.window.rootViewController.childViewControllers[0]; 拿到当前controller

        if ([AccountManagersharedInstance].isLogin) {

            //传入一个消息的model
            MessageListModel *model = [[MessageListModelalloc] init];
            [model setValuesForKeysWithDictionary:userInfo];
            [selfaddNotification:model]; //在这个方法中设置不同的跳转

        } else {

            UserLoginViewController *login = [[UserLoginViewControlleralloc] init];
            [myNavi pushViewController:loginanimated:YES]; //未登录是的跳转
        }
    }
    completionHandler(UIBackgroundFetchResultNewData);

    [self.rootViewControlleraddNotificationCount];
}   

二、3D touch进入到APP的不同页面(这里简单的只有一个跳转,如果需要,可通过shoratitem字段判断)

pragma mark — 3D Touch 入口方法

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{

    [[AccountManagersharedInstance] changeRootViewControllerWithHome];

    MyNavigationViewController *myNavi =self.window.rootViewController.childViewControllers[0];

    if ([AccountManagersharedInstance].isLogin) {

        ExpandViewController *expandVC = [[ExpandViewControlleralloc] init];
        [myNavi pushViewController:expandVCanimated:YES];

    } else {

        UserLoginViewController *login = [[UserLoginViewControlleralloc] init];
        [myNavi pushViewController:loginanimated:YES];
    }
}

另外,
也可直接在当前的页面进行不同跳转
只需将以上的rootViewController.childViewControllers[0]改为rootViewController.selectedViewController

eg:
//跳到登录页面

      UserLoginViewController *loginVC = [[UserLoginViewControlleralloc] init];
      [((UINavigationController *)tabBarController.selectedViewController)pushViewController:loginVC animated:YES];
版权声明:本文为博主原创文章,未经博主允许不得转载,有问题可联系博主Email: liuyongjiesail@icloud.com

相关文章推荐

3D Touch 的实现和系统分享功能

3D Touch其实就是快速进入指定app界面的一种方式。 下面和大家分享一下简单的实现 1、静态标签 静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序...

iOS推送、3D touch、分享等进入APP的不同跳转方式

[[AccountManager sharedInstance] changeRootViewControllerWithHome]; //改变rootviewController为主页面(我这里为t...
  • Yj_sail
  • Yj_sail
  • 2016年07月01日 11:56
  • 2983

iOS 关于应用内跳转的问题

在iOS开发中应用内跳转是很常用的,比如第三方登录跳转到授权的App(QQ,微信等),还有第三方支付(微信,支付宝等) 开发这些都需要应用内跳转的知识。 先大概说下流程: appA想跳到appB,先将...

【转】iOS开发--一步步教你彻底学会『iOS应用间相互跳转』

1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景。这就需要我们掌握iOS应用程序之间的相互跳转知识。 下面来看看我们在开发过程...

iOS应用程序间跳转总结

应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码需要用户授权,返回到调用程序,同时返回授权的用户名应用程序推广,跳转到itunes并显示指定app下载页第三方支付,跳转到支...
  • ruglcc
  • ruglcc
  • 2015年12月02日 15:14
  • 4104

iOS两个APP之间的跳转和传值

在iOS中,可以使用openUrl从一个APP跳转到另一个APP。 一个程序若要跳到另一个程序。需要在目标程序的plist文件里面修改: 打开info.plist,添加一项URL types 展...

3D touch 静态、动态设置及进入APP的跳转方式

申明Quick Action有两种方式:静态和动态 静态是在info.plist文件中申明,动态则是在代码中注册,系统支持两者同时存在。 -系统限制每个app最多显示4个快捷图标,包括静态和动态 静态...

兼容iOS7以上设置推送,跳转app设置界面

1、首先我们要明确推送实际上有2个开关:    (1)iOS系统(APNS协作)       (2)本地(我们自己的)服务器             所以,为了更好的用户体验,并且iOS有限制的情况...
  • zhq9108
  • zhq9108
  • 2016年03月10日 16:26
  • 362

iOS推送消息启动页面,URL启动App并跳转页面设计

需求描述:App里经常使用推送消息通知用户,如果不做任何操作,只给将App启动起来,这样没有任何效果,最佳实践是启动起来App后,自动拉起指定的页面,最好再有参数传递,通过参数来将数据加载到该页面上。...

App Shortcuts 快捷方式 Android7.1 的"3D Touch"

Hello shortcuts从Android7.1(API level25)开始,开发者可以为自己的app定制shortcuts。shortcuts使用户更便捷、快速的使用app。我个人感觉有点像i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS推送、3D touch、分享等进入APP的不同跳转方式
举报原因:
原因补充:

(最多只允许输入30个字)