什么是本地推送通知?
顾名思义,就是不需要联网就能发出的推送通知
本地推送通知的使用场景
定时提醒用户完成一些任务
如何发送本地通知
直接上代码
/*
@property(nonatomic,copy) NSDate *fireDate; 指定通知发送的时间
@property(nonatomic,copy) NSTimeZone *timeZone; 指定发送通知的时区
@property(nonatomic) NSCalendarUnit repeatInterval; 重复的周期, 枚举
@property(nonatomic,copy) NSCalendar *repeatCalendar; 重复的周期 , 2014.12.12
@property(nonatomic,copy) NSString *alertBody; 通知内容
@property(nonatomic) BOOL hasAction; 是否需要滑动事件
@property(nonatomic,copy) NSString *alertAction; 锁屏状态的标题
@property(nonatomic,copy) NSString *alertLaunchImage; 点击通知之后的启动图片
@property(nonatomic,copy) NSString *soundName; 收到通知播放的音乐
@property(nonatomic) NSInteger applicationIconBadgeNumber; 图标提醒数字
@property(nonatomic,copy) NSDictionary *userInfo; 额外的信息
*/
// 1.创建本地通知对象
UILocalNotification *note = [[UILocalNotification alloc] init];
// 指定发送时间
note.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
// 注意,在开发中一般情况下,需要指定时区(让通知的时间跟随当前时区)
note.timeZone = [NSTimerZone defaultTimeZone];
// 指定通知内容
note.alertBody = @"这是通知内容";
// 设置通知重复的周期(1秒钟通知一次)
//note.repeatInterval = NSCalendarUnitSecond;
// 设置锁屏界面的信息
note.alertAction = @"滑动查看信息";
// 设置点击通知进入程序时候的启动图片
note.alertLuanchImage = @"Default";
// 设置应用程序的提醒图标(需要注册授权哦)
note.applicationIconBadgeNumber = 10;
// 注册通知时可以指定将来点击通知之后需要传递的数据
note.userInfo = @{"name":@"njit",
"age":@"28"
"phone": @"12345678912"};
// 2.注册通知
UIApplication *app = [UIApplication shareApplication];
// 每次条用添加方法都会将通知添加到scheduledLocalNotifications数组中
[app scheduledLocalNotification:note];
// 接收到本地通知时就会调用
// 当程序在前台时, 会自动调用该方法
// 当承载还后台时, 只有用户点击了通知才会调用
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"%s", __func__);
}
// 清空通知
UIApplication *app = [UIApplication sharedApplication];
[app cancelAllLocalNotifications];