集成个推实现推送跳转到指定页面

原创 2017年02月22日 14:37:03

项目之前使用的信鸽推送,觉得不怎么好用,就在闲下来的时候换成了个推,个推的文档还是比较详细的,简单的推送只要看下文档就OK了。

透传

个推有个透传的功能,使用这个功能进行推送的时候,如果APP在前台运行时,是不会显示推送信息的;如果APP是在后台或者杀死的情况下,是会有推送通知的显示的。这个一定要和推送通知区分开来。(最重要的是要和后台人员商量一致,再传参数的时候是使用透传还是消息通知,如果使用透传功能进行参数的传递,那么需要在透传的回调方法中自己写本地通知)

消息通知

主要使用就是带参数的消息通知

app在离线状态接收到消息通知

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)( ))completionHandler {
//获取消息中传递的参数    
NSDictionary * dict = [[NSDictionary alloc]initWithDictionary:response.notification.request.content.userInfo];

}

苹果为我们提供的app在前台接收到消息通知

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
//获取消息中传递的参数
NSDictionary * dict = [[NSDictionary alloc]initWithDictionary:notification.request.content.userInfo];
}

但是在使用个推的时候,我们的app与个推的服务器保持了长连接,我们在透传的时候使用下面的方法来接收参数:

/** SDK收到透传消息回调*/
- (void)GeTuiSdkDidReceivePayloadData:(NSData *)payloadData andTaskId:(NSString *) taskId andMsgId:(NSString *)msgId andOffLine:(BOOL)offLine fromGtAppId:(NSString * )appId;

根据接收到的参数跳转到不同的页面:

-(void)touChuanPushAction:(NSDictionary *)dic {
    int type = [[dic objectForKey:@"type"] intValue];
    switch (type) {
        case 10:{//跳转消息详情

        }break;
        case 11:{//跳转web页或者类包名
            if ([[dic objectForKey:@"isweb"] intValue] == 1) {//isweb  1web页面地址 2类包名

                UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"进入web" message:@"" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"OK", nil];//离线
                [alert show];

                NSString *urlString = [dic objectForKey:@"weburl"];
                WebUrlViewController *VC=[[WebUrlViewController alloc]init];
                if (urlString == nil || [urlString isEqualToString:@""]) {
                    urlString = @"www.gexiazi.com";
                }
                VC.url= urlString;
                VC.Name=@"歌匣子活动";
                [self PushToViewControllerWithVC:VC];
            }else if ([[dic objectForKey:@"isweb"] intValue] == 2) {
                NSString *className = [dic objectForKey:@"iosClassName"];
                [self pushToViewControllerWithClassName:className];
            }
        }break;
        case 12:{//ktv商家审核通过
            UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"进入" message:@"" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"OK", nil];
            [alert show];
            UITabBarController *tab = (UITabBarController *)self.window.rootViewController;
            UINavigationController  *nvc = tab.selectedViewController;
            UIViewController *vc = nvc.visibleViewController;
            KTVShopCenterViewController *VC = [[KTVShopCenterViewController alloc]init];
            vc.hidesBottomBarWhenPushed=YES;
            [vc.navigationController pushViewController:VC animated:YES];
            vc.hidesBottomBarWhenPushed=NO;
        }break;
        case 13:{//ktv商家审核拒绝

        }break;
        case 14:{//ktv拼团订单支付成功推送商家
            KTVShopCenterViewController *VC = [[KTVShopCenterViewController alloc]init];
            [self PushToViewControllerWithVC:VC];
        }break;
        case 15:{//ktv拼团订单支付成功推送用户
            WaitForUseOrderInfoViewController *VC = [[WaitForUseOrderInfoViewController alloc]init];
            [self PushToViewControllerWithVC:VC];
        }break;
        case 16:{//ktv商家线上游戏上架

        }break;
        case 17:{//ktv商家拼团套餐成功或失败推送商家

        }break;
        case 18:{//ktv商家拼团套餐成功或失败推送用户
            PinTuanZhuangTaiViewController *VC = [[PinTuanZhuangTaiViewController alloc] init];
            [self PushToViewControllerWithVC:VC];
        }break;
        default:
            break;
    }

}
//根据类名来跳转对应界面
-(void)pushToViewControllerWithClassName:(NSString *)className {
    if (className != nil) {
        id myObj = [[NSClassFromString(className) alloc] init];
        @try {
            UITabBarController *tab = (UITabBarController *)self.window.rootViewController;
            UINavigationController  *nvc = tab.selectedViewController;
            UIViewController *vc = nvc.visibleViewController;
            vc.hidesBottomBarWhenPushed = YES;
            [vc.navigationController pushViewController:myObj animated:YES];
            vc.hidesBottomBarWhenPushed = NO;
        }
        @catch (NSException *exception) {
            // 捕获到的异常exception
        }
        @finally {
            // 结果处理
        }
    }
}

-(void)PushToViewControllerWithVC:(UIViewController *)vc {
    UITabBarController *tab = (UITabBarController *)self.window.rootViewController;
    UINavigationController  *nvc = tab.selectedViewController;
    UIViewController *viewController = nvc.visibleViewController;
    viewController.hidesBottomBarWhenPushed=YES;
    [viewController.navigationController pushViewController:vc animated:YES];
    viewController.hidesBottomBarWhenPushed=NO;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

个推钱柜娱乐开户客户端点击跳到指定activity

这些的前提是要先把钱柜娱乐开户端的个推集成成功,能够在个推平台推送消息并且接收到。 我们知道个推的推送分为通知推送和透传消息推送:通知即会在通知栏进行提醒,点击通知可以选择启动应用,打开网...
  • u014537423
  • u014537423
  • 2015年05月08日 18:40
  • 4815

极光推送-点击通知栏跳到指定页面

在MyReceiver接收器里面,添加以下代码: if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) ...
  • u013231041
  • u013231041
  • 2016年10月11日 10:12
  • 9680

个推-点击推送跳转至指定页面(透传)

钱柜娱乐开户 集成个推推送后 默认处理推送的方式是打开应用,打开指定页面的话需要自己配置  其实很简单 只需要在  intentservice类里面的onReceiveMessageData处理透...
  • Monkey_King_Bar
  • Monkey_King_Bar
  • 2017年11月18日 14:24
  • 533

成功集成个推后,点击推送直接跳入app指定页面

1.首先跳转在哪里写:前提是个推集成成功,在Service如下方法中获取服务器推送过来的数据; @Override public void onReceiveMessageData(Conte...
  • qing_happy88
  • qing_happy88
  • 2017年08月11日 16:41
  • 646

个推推送,APP接收到推送后的操作(前台与非前台的处理不同)

图1 个推推送服务框架图 原创作者http://www.jianshu.com/p/a9acc30e9ba6 首先,按照个推SDK集成指南配置好一个完整的工程。或者直接下载现有工程(需要修改bu...
  • ModalYin
  • ModalYin
  • 2017年05月08日 09:51
  • 1411

个推 透传推送,带参数

用户可以在事件触发的回调中获取“PushMessage”对象,如发送的是普通消息可以在对象中获取推送消息的“title”属性和“content”属性的值,消息为透传消息,则可以获取“payload”属...
  • moniteryao
  • moniteryao
  • 2015年04月14日 22:42
  • 6652

iOS点击推送消息跳转到指定页面

最近一直在搞推送消息跳转指定页面, 点击通知栏, 执行以下方法 - (void)application:(UIApplication *)application didReceiveRemote...
  • NLYNN
  • NLYNN
  • 2016年11月15日 09:14
  • 4054

iOS开发 极光推送收到通知后跳转到指定页面

iOS在开放中,会使用到极光推送,然后收到推送时,往往需要跳转指定的界面,而跳转到指定界面时,又分为程序未杀死情况下的跳转和程序已杀死的跳转,即离线状况下的跳转: 当程序未杀死状况下的条状方...
  • zhaofahseng
  • zhaofahseng
  • 2017年05月25日 10:22
  • 2025

使用hbuilder开发的app集成的个推

前言: 最近使用hbuilder开发的一个app中用到了个推功能,在此期间,翻看了DCloud和百度上一些有关个推的问题,目前这种例子太少,以至于遇到问题,百度也搜不到标准答案。这次后台用的java...
  • qq_34722251
  • qq_34722251
  • 2017年03月31日 16:57
  • 3746

H5+个推实现消息推送服务

网上看了几篇教程都是比较老的版本了,根据前人的智慧,然后自己摸索了下,简单几步实现了在手机上推送自定义的消息。 首先,在个注册个账号,开发阶段使用个人注册即可,个推注册地址 注册完进入配置页面,对应用...
  • qq_16497617
  • qq_16497617
  • 2016年10月20日 18:41
  • 7776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集成个推实现推送跳转到指定页面
举报原因:
原因补充:

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