当我们的APP收到推送消息后,通常需要根据推送内容点击消息进入到指定的页面

这里讲一下收到推送消息后的处理,分为三种情况 :1.APP处于前台运行情况下

              2.APP处于后台挂起情况下

                         3.APP未启动情况下

前两种相对好处理一点,我是在didReceiveRemoteNotification方法里接受到消息后发一个通知给MainViewController,跳转界面

具体如下:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

    // Required, iOS 7 Support
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
// NSLog(@"%@",userInfo);
_notDic = [NSMutableDictionary dictionary];
[_notDic setObject:userInfo[@"ID"] forKey:@"myID"];
[_notDic setObject:userInfo[@"PICPATH"] forKey:@"myPic"];
//判断应用是在前台还是后台
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) { //第一种情况前台运行
NSString *apnCount = userInfo[@"aps"][@"alert"];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"推送信息" message:apnCount delegate:self cancelButtonTitle:@"查看" otherButtonTitles:@"取消", nil];
alert.delegate = self;
[alert show]; }else{ //第二种情况后台挂起时
[[NSNotificationCenter defaultCenter]postNotificationName:KJPUSHNOT object:nil userInfo:_notDic];
} }

第三种程序未启动时情况下,需要在didFinishLaunchingWithOptions方法里处理,而不能通过通知跳转页面,因为这时MainViewController还没有走viewDidLoad方法,是没办法接受通知的,具体代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
    //判断是否是通过点击推送消息进入的APP
NSDictionary *resultDic = launchOptions[@"UIApplicationLaunchOptionsRemoteNotificationKey"];
if (resultDic) {//推送进入APP
self.window.rootViewController = wantVC;
}else{//正常进入APP
self.window.rootViewController = mainVC;
} return YES;
}

ios之极光推送消息收到以后对消息的处理总结的更多相关文章

  1. iOS开发——极光推送

    1.到极光官网 https://www.jpush.cn/ 下载极光推送SDK. 具体如何集成最好参考官网的文档,以及一些失败的原因.文档非常详细,我也是参考集成的. 2.到极光推送官网注册自己的应用 ...

  2. iOS 集成极光推送

    最近极光推送更新到V3版本之后,推送又不成功!配合服务器联调了半天,发现是服务器环境配置有问题. 想着就把极光推送的步骤给记录下来. 一.配置push证书 这个可以到极光文档里写,很详细 二.导入必要 ...

  3. iOS:极光推送控制器跳转

    在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方 ...

  4. 制作IOS 后台极光推送时,遇到的小问题

    推送广义上分为两种, 一种是  程序在前台的时候,不想在任务栏里面显示通知,直接在app中进行某种操作.这个叫做自定义消息.这个是在前台时,app与极光后台建立了一个长链接. 另一种是  程序处于前. ...

  5. iOS之极光推送

    注册JPush账号 JPush官网 下载SDK 下载地址:https://www.jpush.cn 根据文档进行集成 文档:http://docs.jpush.io/guideline/ios_gui ...

  6. iOS开发极光推送显示 开发证书没有通过验证 是否重新上传证书?解决方法

    1.证书密码错误 2证书环境不匹 3导证书时因手误把私钥导出来了,而不是证书 1.当前上传的p12证书密码输入有误: 2. 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候请不要展开证书: ...

  7. ios集成极光推送:Undefined symbols for architecture arm64: "_dns_parse_resource_record", referenced from:?

    添加libresolv.tbd库,即可解决问题 Undefined symbols for architecture arm64: "_dns_parse_resource_record&q ...

  8. Android 极光推送JPush---自定义提示音

    极光推送提供三种方法实现Notification通知 三方开发平台发送普通消息,客户端设置PushNotificationBuilder,实现基础的Notification通知 三方开放平台发送普通消 ...

  9. iOS 极光推送 如何点击推送消息跳转页面

    假如你已经集成完了极光,恰好有这个问题不知如何解决,可以看看这篇文章,这篇是针对远程通知的,本地通知大同小异吧. 根据我项目的要求,极光推送跳转指定页面分为两种情况:app在后台情况和app在杀死的情 ...

随机推荐

  1. 依赖注入和IOC

    http://www.bbsmvc.com/archiver/csharp/thread-831-1.html 本来想使用一下Ninject的,然后搜索了很久,都没找到比较详细的关于Ninject的使 ...

  2. 《剑指Offer》面试题-从头到尾打印链表

    题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例.每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点.第一行是链表第一个节点的值,依次类推 ...

  3. 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件

    出现这个问题,是由于使用了非.NET 的动态链接库,需要注册 方法如下: 1.在搜索程序和文件中使用 regsvr32 "D:\Projects\8.01.01.03-重庆大足\lib\Va ...

  4. NoSql数据库使用

    NoSql数据库使用半年后在设计上面的一些心得 NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么 ...

  5. IP 首部检验和算法

    原创博文,转载请注明出处. 在学习TCP/IP 详解的过程中遇到了不止一次的关于检验和的概念,在吸取了他人理解的前提下,我决定用Wireshark 进行抓包分析. 首先我们得知道IP数据包格式 首先把 ...

  6. 动手Jquery插件

    自己动手Jquery插件 最近Web应用程序中越来越多地用到了JQuery等Web前端技术.这些技术框架有效地改善了用户的操作体验,同时也提高了开发人员构造丰富客户 端UI的效率.JQuery本身提供 ...

  7. media Queries实现一个响应式的菜单

    使用media Queries实现一个响应式的菜单   Media queries是CSS3引入的一个特性,使用它可以方便的实现各种响应式效果.在这个示例中我们将会使用media queries实现一 ...

  8. 教你使用shell数组

    数组的使用,需要掌握 1.对数组进行赋值 2.通过下标访问数组元素 3.循环遍历所有的元素 代码如下: #!/bin/bash a="39" b="5" c=& ...

  9. WampServer Mysql配置

    WAMP:Windows下的Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件.可点击此处下载WampServer,然后,按照提示安装WAMP.需要说 ...

  10. 创建naarray(1)

    创建ndarray Numpy创建ndarray的方法比较够用,几乎也就是矩阵运算的常用的方法. 约定: import numpy as np 常用的创建ndarray的函数有:np.array, n ...