iOS 消息推送接收处理

作者: zyh1158 | 来源:发表于2016-05-16 11:16 被阅读1949次

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

首先要说明两个概念:本地通知和远程推送。本地通知是由本地应用触发的,接收会比较及时。远程推送是通过苹果的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状态做相应的处理。

相关文章

  • iOS消息推送接收处理

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

  • iOS 消息推送接收处理

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

  • ios通知小结

    调试时发现,iOS 处理推送通知的方式在 iOS 9 和 iOS 10 上面有所不同。接收消息推送有两个代理方法:...

  • iOS9和iOS10推送区别

    收到消息数据格式区别 要根据具体数据格式进行解析,以适配iOS10+。 收到远程推送消息几种情况处理 前台接收消息...

  • JPUSH addReceiveNotificationList

    IOS端采用JPUSH做消息推送时,需要addReceiveNotificationListener来接收消息,但...

  • 接收到推送消息处理方法

    第一篇文章,来写点近来接触比较多的推送消息处理的一些东西吧。本文主要说的是接收到推送消息的处理,至于集成比较简单,...

  • iOS推送消息处理

    注册远程推送 极光推送跟着极光推送官方的文档集成就行,使用控制台测试是否收到通知,如果收不到,可以先检查远程通知是...

  • 【iOS】处理推送消息

    很多应用都会实现推送功能,我们可以集成第三方框架实现推送功能,比如:JPush推送:https://www.jpu...

  • 极光推送第三篇:消息跳转和自定义

    极光推送第一篇:配置极光推送第二篇:消息处理 上一篇极光推送第二篇:消息接收中我们接收并打印了消息,这一篇我们看看...

  • 苹果APNs device token特性和过期更新

    推送流程 1、应用程序注册消息推送。 2、iOS从APNS Server获取device token,应用程序接收...

网友评论

  • 风火游龙:不点击通知栏的消息,直接点击app图标,怎么拿到通知栏的所有消息呢
    65cb190bef16:@风火游龙 我也想知道怎么过去
  • 4090dea7ba26:开机不启动程序,接收消息只能用推送吗?
    zyh1158:@妈妈说你还小 是的
    4090dea7ba26:@zyh1158 那像微信,qq那种, 不打开程序, 能收到一条条的消息,也是用的远程推送吗?
    zyh1158:@妈妈说你还小 是的啊,只能远程推送

本文标题:iOS 消息推送接收处理

本文链接:https://www.haomeiwen.com/subject/ourbrttx.html