本地通知是UILocalNotification的实例,主要有三类属性:
- scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间;
- notification type,通知类型,包括警告信息、动作按钮的标题、应用图标上的badge(数字标记)和播放的声音;
- 自定义数据,本地通知可以包含一个dictionary类型的本地数据。
对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。
UILocalNotification *notification=[[UILocalNotification alloc] init];
if (notification!=nil) {
NSDate *now = [NSDate date];
//从现在开始,10秒以后通知
notification.fireDate=[now dateByAddingTimeInterval:4];
//使用本地时区
notification.timeZone=[NSTimeZone defaultTimeZone];
notification.alertBody=@"顶部提示内容,通知时间到啦";
//通知提示音 使用默认的
notification.soundName= UILocalNotificationDefaultSoundName;
notification.alertAction=NSLocalizedString(@"你锁屏啦,通知时间到啦", nil);
//这个通知到时间时,你的应用程序右上角显示的数字。
notification.applicationIconBadgeNumber = 1;
//add key 给这个通知增加key 便于半路取消。nfkey这个key是我自己随便起的。
// 假如你的通知不会在还没到时间的时候手动取消 那下面的两行代码你可以不用写了。
NSDictionary *dict =[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:notification],@"nfkey",nil];
[notification setUserInfo:dict];
//启动这个通知
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
//这句真的特别特别重要。如果不加这一句,通知到时间了,发现顶部通知栏提示的地方有了,然后你通过通知栏进去,然后你发现通知栏里边还有这个提示
//除非你手动清除,这当然不是我们希望的。加上这一句就好了。网上很多代码都没有,就比较郁闷了。
}