接收推送消息分为两种,一种是在应用进程没有被回收,和应用进程已经被回收两种。
第一种处理接收处理位置:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//在此处处理接收的信息->页面进行相应的跳转
// 程序在运行中
if (application.applicationState == UIApplicationStateActive) {
//提示信息数
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber+1;
//信息处理
// arrayMsg=[NSArray arrayWithObjects: [userInfo objectForKey:@"t"],[userInfo objectForKey:@"c"],[userInfo objectForKey:@"h"],[userInfo objectForKey:@"p"],[userInfo objectForKey:@"u"], nil];
//弹出信息展示,通知点击事件
// [MPNotificationView notifyWithText:@"您有新的消息"
// detail:[userInfo objectForKey:@"h"]
// image:[UIImage imageNamed:@"icon-57.png"]
// andDuration:5.0];
}
else//程序没有在运行中,点了home键之后
{
//提示信息数
if([UIApplication sharedApplication].applicationIconBadgeNumber >0){
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber-1;
}
//信息处理
//弹出信息展示
}
}
第二种处理接收处理位置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//判断程序是不是由推送服务完成的
if (launchOptions)
{
NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
//此处和application:didReceiveRemoteNotification:中的userInfo信息一样
if (userInfo)
{
if([UIApplication sharedApplication].applicationIconBadgeNumber >0){
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber-1;
}
//推送跳转,一般延迟几分钟,因为可能需初始化一些东西,pushNewDetail为
[self performSelector:@selector(pushNewDetail:) withObject:userInfo afterDelay:2.0];
}
}
}
本文固定链接:
http://palmsky.net/?p=4240 | 掌中天际