IOS推送消息处理跳转指定页面

来源:互联网 发布:java脚本返回上一页 编辑:程序博客网 时间:2024/06/08 04:27

APP有UITabbarController、UINavigationController;

主页:FirstViewController

指定页:MyViewController

@interfaceCustomTabBarViewCtr:UITabBarController

<p style="margin-top: 0px; margin-bottom: 0px; font-size: 11px; font-family: Menlo;"><span style="color: rgb(222, 56, 166);">@interface</span><span style="color:#009900;"> CustomNavigationViewCtr : </span><span style="color:#3333ff;">UINavigationController</span></p>

后台运行时:

<pre name="code" class="objc"><span style="color:#006600;">// ios7 later 点击推送消息 调用此方法</span><span style="color:#3333ff;">- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {    application.applicationIconBadgeNumber = 0;    [self getCurrentRootViewController:application];    completionHandler(UIBackgroundFetchResultNoData);}</span>

<pre name="code" class="objc"><pre name="code" class="objc"><span style="color:#006600;">//    获取当前viewcontroller</span><span style="color:#3333ff;">-(void)getCurrentRootViewController:(UIApplication*)applocation{    CustomTabBarViewCtr * instance = [CustomTabBarViewCtr shareTabBarViewCtr];    UIViewController *controller = instance.selectedViewController;        if ([controller isKindOfClass:[UINavigationController class]]){                controller = [(UINavigationController *)controller visibleViewController];                MyMesgesViewController *five=[[MyMesgesViewController alloc]init];        [controller.navigationController pushViewController:five animated:YES];        }}</span>


程序关闭时:
 <pre name="code" class="objc"><span style="color:#009900;">//程序在关闭状态时  点击推送消息打开程序则 launchOptions 不为空</span>  <span style="color:#3333ff;">-(void)zhuceTuiSOng:(UIApplication *)application WithOptions:(NSDictionary *)launchOptions{   ......其他代码......    if (launchOptions) {        application.applicationIconBadgeNumber = 0;        /* 想处理的代码写在这 */        //截取apns推送的消息        NSDictionary* pushInfo = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];        //获取推送详情        NSString *pushInfostr = [NSString stringWithFormat:@"%@",[pushInfo  objectForKey:@"aps"]];    }}</span>
<span style="color:#009900;">会自动调用方法- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler;</span>

</pre><br /><br /><p><br /></p><p>// 附属方法,这是一些其他类里的方法,为了方便理解上边代码,单独拷贝出来以供参考理解</p><p></p><pre name="code" class="objc"><span style="color:#3333ff;">+(CustomTabBarViewCtr *)shareTabBarViewCtr{    static CustomTabBarViewCtr * instance = nil;    if (instance == nil) {        instance = [[CustomTabBarViewCtr alloc] init];    }    return instance;}</span>
<span style="color:#3333ff;">-(void)addViewCtrs{    FirstViewController * fvc = [[FirstViewController alloc] init];    CustomNavigationViewCtr * cvc1 = [[CustomNavigationViewCtr alloc] initWithRootViewController:fvc];        SecondViewController * fvc2 = [[SecondViewController alloc] init];    CustomNavigationViewCtr * cvc2 = [[CustomNavigationViewCtr alloc] initWithRootViewController:fvc2];        NSArray * aryTemp = [NSArray arrayWithObjects:cvc1,cvc2, nil];            self.viewControllers = aryTemp;}</span>


评论是一种美德,是对作者的一种鼓励,欢迎斧正,谢谢!

1 0
原创粉丝点击