本地通知创建之前需要用户授权是否可以推送通知需要在AppDelegate 中注册
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 通过launchOptions中携带的信息判断是点击图标还是通知进入的
// 注册通知。
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings *noteSetting =[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:noteSetting];
}
return YES;
}
UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
//判断用户是否授权接收通知,未授权则通知不能发送,必须用户授权才能接收
if (UIUserNotificationTypeNone != setting.types) {
NSLog(@"授权通知");
} else {
NSLog(@"未授权通知去设置");
}
// 使用Lable设置时间转换时间Formatter
// 创建一个日期格式器
// NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// // 为日期格式器设置格式字符串
// [dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm +0800"];
// // 使用日期格式器格式化日期、时间
// NSString *destDateString = [dateFormatter stringFromDate:selected];
// NSString *message = [NSString stringWithFormat:
// @"您选择的日期和时间是:%@", destDateString];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.alertAction = @"标题";
localNotification.alertBody = @"正文";
// 设置重复时间间隔
// localNotification.repeatInterval = NSCalendarUnitMinute;
// localNotification.applicationIconBadgeNumber = 1; //图标显示通知次数
localNotification.alertLaunchImage = @"notification.png"; //打开显示的图片默认启动页
NSLog(@"%@", selected);
// 设置通知的时间 selected是一个NsDate类型
localNotification.fireDate = selected;
// localNotification.soundName = @"m_05.wav"; //声音
//添加注册通知
UIApplication *app = [UIApplication sharedApplication];
[app cancelAllLocalNotifications];
[app scheduleLocalNotification:localNotification];
移除通知操作
UIApplication *application =[UIApplication sharedApplication];
// [application cancelLocalNotification:]取消指定的通知
[application cancelAllLocalNotifications];
//注册完通知后接收本地通知打开,用户点击通知打开应用程序调用该方法(运行中没有退出)
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
NSLog(@"用户点击通知打开应用程序调用");
}