iOS 当APP接收到推送消息时,对推送消息进行处理

结合最近做的项目来总结一下,在我们接收到推送通知后我们将要怎么处理这条推送消息,也为以后再做相关推送的时候能够更快处理。

首先要说明两个概念:本地通知和远程推送。本地通知是由本地应用触发的,接收会比较及时。远程推送是通过苹果的APNs发送到应用客户端的。

以下有处理推送的三种状态:

一.APP没有被杀掉进程的时候,会根据是本地通知还是远程推送来调用不同的函数

//本地通知

-(void)application:(UIApplication*)application didReceiveLocalNotification:(UILocalNotification*)notification {

...

}

//远程推送

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {

...

}

//远程推送时苹果官方文档更推荐使用这个

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

{

}

二.APP在杀掉进程的时候,当我们通过通知进入APP时,会调用下面的函数

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

//检查是否从通知启动

if(launchOptions)

{

NSDictionary* remoteNotification=[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

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

}

}

三.判断接收消息时的状态

//当应用程序在激活状态时接到通知,会是如下状态

if(application.applicationState == UIApplicationStateActive) {

...

//当应用程序在后台挂起时接到通知,用户进入应用后,会是如下状态

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

...

}

在我们了解了以上三点后,就可以根据不同的情况处理推送消息了。

天伦物业项目的要求是不管APP在什么状态点击推送都要跳转到相应的页面,这个时候我们通过第一点和第二点会调用的函数,解析收到的消息字典获取不同的type值,做相应的跳转。

我完成的仟询项目的要求是APP在活跃状态下是不处理推送的,我们接收到消息的情况下,可以通过第三点来判断APP状态做相应的处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值