环境: Xcode 8.1
系统: iOS10以下
适用范围: 提醒通知,闹钟
0.在iOS8开始适用本地推送需要注册通知
if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationType type = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:type categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
}
1.创建一个本地推送
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
2.触发时间
本地推送的触发条件有两种,任意一种都可以
一种是NSdata
一种是NSTimeInterval
这里我用的是NSTimeInterval类型的参数
//设置推送10秒后触发
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
3.设置时区
这里要注意本地推送默认是格林威治时间,要换成我们的时间
localNotification.timeZone = [NSTimeZone defaultTimeZone];
3.设置推送内容
推送内容一定要设置,如果不设置推送内容是看不到推送的
localNotification.alertBody = @"我是本地推送";
4.设置推送声音
注意:如果是自己定义声音,长度不可以超过30秒,如果超过了会自动替换成系统的声音或者没有声音
支持的格式可以播放mp3.caf.其他的格式没有测试
localNotification.soundName = @"爱转角.mp3";
5.设置推送标题
这个没什么好说的
localNotification.alertTitle = @"疼疼";
6.设置推送图标
localNotification.alertLaunchImage =@"你的图片名称";
8.设置推送字典
这里字典可以存放一些我们要传的东西
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[@"today"] = @"本地推送";
localNotification.userInfo = dict;
7.设置推送重复
这里是个日历枚举,按自己需要设置即可
localNotification.repeatInterval = kCFCalendarUnitMinute;
9.把通知加入到通知队列,如果没有添加,通知不会启动
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
网友评论