iOS极光推送跳转到指定页面

首先要初始化sdk,官方文档上有

[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)  categories:nil];

[JPUSHService setupWithOption:launchOptions appKey:@"" channel:@"Publish channel" apsForProduction:NO];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    //alias需要看自己的实际情况赋值

[JPUSHService setTags:nil alias:nil fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {

}];

});

APPDelegate中加入方法

- (void)application:(UIApplication *)application

didReceiveRemoteNotification:(NSDictionary *)userInfo

fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

[JPUSHService handleRemoteNotification:userInfo];

NSLog(@"userInfo%@",userInfo);

completionHandler(UIBackgroundFetchResultNewData);

if (application.applicationState == UIApplicationStateActive) {

//这里写APP正在运行时,推送过来消息的处理

} else if (application.applicationState == UIApplicationStateInactive ) {

//APP在后台运行,推送过来消息的处理

[self goToMssageViewControllerWith:userInfo];

} else if (application.applicationState == UIApplicationStateBackground) {

//APP没有运行,推送过来消息的处理

[self goToMssageViewControllerWith:userInfo];

}

}

//跳转方法

- (void)goToMssageViewControllerWith:(NSDictionary*)msgDic{

//将字段存入本地,在要跳转的页面用它来判断

NSUserDefaults*pushJudge = [NSUserDefaults standardUserDefaults];

[pushJudge setObject:@"push"forKey:@"push"];

[pushJudge synchronize];

if ([msgDic[@"type"]isEqualToString:@"Notification_cabinet"]) {

  //这里写要跳转的controller

UserOrderListViewController * VC = [[UserOrderListViewController alloc]init];

UINavigationController * Nav = [[UINavigationController alloc]initWithRootViewController:VC];

[self.window.rootViewController presentViewController:Navanimated:YES completion:nil];

} else if ([msgDic[@"type"]isEqualToString:@"Message_notice"]) {

RecommendViewController *vc = [[RecommendViewController alloc] init];

UINavigationController * Nav = [[UINavigationController alloc]initWithRootViewController:vc];

[self.window.rootViewControllerpresentViewController:Nav animated:YES completion:nil];

}

}

在要跳转的页面中的ViewDidLoad方法中加入

NSUserDefaults*pushJudge = [NSUserDefaults standardUserDefaults];

if([[pushJudgeobjectForKey:@"push"]isEqualToString:@"push"]) {

[self.navigationController setNavigationBarHidden:NOanimated:YES];

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@""]style:UIBarButtonItemStylePlain target:selfaction:@selector(rebackToRootViewAction)];

}

具体情况根据自己的APP需要进行修改

时间: 2024-09-30 09:32:33

iOS极光推送跳转到指定页面的相关文章

ios极光推送通知

iOS极光推送文档 一.创建工程 Product Name:baixin Company Identifier:com.bluewave Bundle Identifier:com.bluewave.baixin 二.申请证书 1.创建应用程序ID a.登陆 iOS Dev Center 选择进入iOS Provisioning Portal. b.在 iOS Provisioning Portal中,点击App IDs进入App ID列表. c. 创建 App ID,如果 ID 已经存在可以直

iOS极光推送

1.配置开发证书(得有开发者账号,个人,企业的都可以) 开发环境测试 在对 JPush iOS 开发环境进行测试前,请确保 3 个统一: App 是开发环境打包(开发证书 Development) 上传了开发证书并验证通过 Portal 上的应用设置为开发环境 发布环境测试 在对 JPush iOS 生产环境进行测试前,请确保 3 个统一: App 是 ad-hoc 打包或者App Store 版本(发布证书 Production) 上传了发布证书并验证通过 Portal 上的应用设置为生产环境

项目实战:iOS极光推送集成(30分钟搞定)

推送有非常多,如个推.友盟.融云和极光等等.在这里就讲下怎样使用极光推送. 主要内容是将官方文档资料详细汇总并一步一步集成到项目中,您也能够直接去官方文档阅览. 极光推送SDK下载 直接打开官方文档下载最新的SDK 极光网创建APP并上传证书 一.制作推送证书和描写叙述文件:须要注意要制作两个证书,一个是測试证书,一个是公布证书,详细看官方文档截图:点击查看证书制作 直接看<iOS 证书 设置指南>其它的不用看了,废话太多 二.在极光推送官网注冊你的APP吧. bundle id要和你项目一直

iOS: 极光推送

之前做过环信和友盟的推送,照着官方文档集成其实挺简单的,今天公司需要,特地做了一下极光推送.不用不知道,原来极光推送集成如此简单,不得不说说了. 当然做推送钱需要做一些准备工作了,就是推送必须的p12推送证书:开发环境(开发时测试需要的推送证书).生产环境(发布到AppStore时需要的推送证书),因为xcode已经升级到了7.0以上,所以一些真机测试的配置文件证书就不需要自己手动去创建了,只要有Apple ID,真机测试时,就能自动生成,免费测试: 制作证书的过程就不啰嗦了,详细看官方文档或者

(转载)iOS 极光推送SDK 集成指南

iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度.提高应用的留存率.极光推送客户端支持 Android, iOS 两个平台. 本 iOS SDK 方便开发者基于 JPush 来快捷地为 iOS App 增加推送功能,减少集成 APNs 需要的工作量.开发复杂度. 主要

iOS极光推送,两次Bundleid不一致( 开发证书没有通过验证 是否重新上传证书)的解决方案

极光在配置ios端推送时,需要上传p12证书,如果遇到如下图:: 证书上传未通过的原因一般有: 1.当前上传的p12证书密码输入有误: 2. 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候请不要展开证书: 3.当前上传的证书环境不对,如:在上传开发证书的地方上传了生产证书: 4.该证书已在本账号的其它应用使用: 5.现上传的证书与当前应用已上传成功的证书的bundle id不一致. 前四种原因都可以自己搞定,但最后一种就比较麻烦了... 我正好是因为第五条原因,两次的bundleid

关于ios极光推送server端注意的地方

今天试用了极光推送API 用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路! 特别是服务端的代码:https://github.com/jpush/jpush-api-java-client  for java Java代码   JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false); CustomMessag

iOS 极光推送遇到的问题

官方文档:http://docs.jpush.cn/pages/viewpage.action?pageId=2621727 问题: 没有Java后台直接从极光服务台推送,极光推送PushConfig.plist文件不需要配置也可推送成功. 但是如果有自己的后台,PushConfig.plist文件必须配置正确.

iOS极光推送 点击推送消息跳转页面

文章来自:http://www.jianshu.com/p/eaf07c4372a8 AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1 if ([[UIDevice currentDevice].s