码迷,mamicode.com
首页 > 移动开发 > 详细

IOS本地消息推送(UILocalNotification)

时间:2015-06-25 15:29:52      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

  IOS本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制队列中,系统会在指定的时间激发将本地Notification,应用只需设计好处理Notification的方法就完成了整个Notification流程了。

 IOS本地的Notification有UILocalNotification对象完成。它包括的主要属性有:fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、 alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、 soundName和userInfo。

   UILocalNotification的调度

  fireDate UILocalNotification的激发的确切时间。

 timeZone:确定UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发。

 repeatInterval:是UILocalNotification被重复激发之间的时间差,不过时间差是完全根据日历单位(NSCalendarUnit)的,例如每周激发的单位,NSWeekCalendarUnit,如果不设置的话,将不会重复激发。

 repeatCalendar:是UILocalNotification重复激发所使用的日历单位需要参考的日历,如果不设置的话,系统默认的日历将被作为参考日历。

soundName:设置UILocalNotification消息推送时的声音,例如:UILocalNotificationDefaultSoundName,也可指定

UILocalNotification的提醒内容

 alertBody、alertAction、hasAction、alertLaunchImage

alertBody:推送内容。

applicationIconBadgeNumber:角标数字。

 

//设置userinfo 方便在之后需要撤销的时候使用

 

NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];

 

noti.userInfo = infoDic;

 

取消一个本地推送 

UIApplication *app = [UIApplication sharedApplication];

 //获取本地推送数组

NSArray *localArr = [app scheduledLocalNotifications];

//声明本地通知对象

UILocalNotification *localNoti;

if (localArr) {

for (UILocalNotification *noti in localArr) {

NSDictionary *dict = noti.userInfo;

if (dict) {

NSString *inKey = [dict objectForKey:@"key"];

if ([inKey isEqualToString:key]) {

if (localNoti){

[localNoti release];

localNoti = nil;

}

localNoti = [noti retain];

break;

}

}

}

 

//判断是否找到已经存在的相同key的推送

if (!localNoti) {

//不存在 初始化

localNoti = [[UILocalNotification alloc] init];

}

 

if (localNoti && !state) {

//不推送 取消推送

[app cancelLocalNotification:localNoti];

[localNoti release];

return;

}

}

4.两种方式取消注册的本地通知,一种是取消指定的通知,第二种是取消所有的注册通知:

[[UIApplication sharedApplication] cancelLocalNotification:localNotification];

[[UIApplication sharedApplication] cancelAllLocalNotification];

 

IOS本地消息推送(UILocalNotification)

标签:

原文地址:http://www.cnblogs.com/xingyuwangchuan/p/4597477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!