本地通知:
创建本体通知,
在iOS8.0之后,使用本地通知必须注册 UIUserNotificationSettings
获得当前版本号,进行注册:
//1.创建一个本地通知
UILocalNotification *locallNot = [[UILocalNotification alloc]init];
//2.先做一下iOS版本的判断,因为iOS8.0以后必须注册一个UIUserNotificationSettings
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
UIUserNotificationSettings*settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge |
UIUserNotificationTypeAlert |
UIUserNotificationTypeSound categories:nil];
//注册这些settings
[[UIApplication sharedApplication]registerUserNotificationSettings:settings];
}
对本地通知做一些属性设置:
设置通知的开始时间:
NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
locallNot.fireDate = fireDate;
设置时区:
locallNot.timeZone = [NSTimeZone defaultTimeZone];
设置重复频率
locallNot.repeatInterval = NSCalendarUnitMinute;
推送显示的内容
locallNot.alertBody = @"12点了,该起床咯";
标题
locallNot.alertTitle = @"提醒";
设置声音(可自定义)三种格式 wav,caf,aiff
locallNot.soundName = UILocalNotificationDefaultSoundName;
// @"XiaoPingGuo.aiff
设置角标的个数
locallNot.applicationIconBadgeNumber = 1;
设置userInfo作为这个通知的标识符,可用来停止通知
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"banji" forKey:@"class"];
locallNot.userInfo = dic;
执行通知
[application scheduleLocalNotification:locallNot];
停止通知(可以根据实际情况在触发某个方法之后停止通知)
1.直接将角标设置为0
[application setApplicationIconBadgeNumber:0];
2.得到所有的本地通知
NSArray *localNots =[application scheduledLocalNotifications];
3.便利所有的本地通知
for (UILocalNotification*local inlocalNots) {
NSDictionary *dic =local.userInfo;
4.根据userInfo得到对应的本地通知
if ([[dic objectForKey:@"class"] isEqualToString:@"banji"]) {
5.取消对应的本地通知
[application cancelLocalNotification:local];
}
}
6.取消全部的本地通知
}