UILocalNotification 本地推送 周一到周五重复提醒
来源:互联网 发布:vb的编程机制是 编辑:程序博客网 时间:2024/06/06 00:31
本文章实现周一到周五上下班打卡提醒。
-(void)setRemindTime
{
//取得系统的时间,并将其一个个赋值给变量
NSDate* now = [NSDatedate];
NSCalendar *calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger unitFlags =NSYearCalendarUnit |NSMonthCalendarUnit |NSDayCalendarUnit |NSWeekCalendarUnit|NSWeekdayCalendarUnit |
NSHourCalendarUnit |NSMinuteCalendarUnit |NSSecondCalendarUnit;
NSDateComponents *comps = [[NSDateComponentsalloc]init];
comps = [calendar components:unitFlagsfromDate:now];
NSDateComponents *comps2 = [[NSDateComponentsalloc]init];
comps2 = [calendar components:unitFlagsfromDate:now];
// int hour = [comps hour];
// int min = [comps minute];
// int sec = [comps second];
for (int newWeekDay =2; newWeekDay<=6; newWeekDay++) {
int temp = 0;
int days = 0;
temp = newWeekDay - comps.weekday;
days = (temp >= 0 ? temp : temp + 7);
[comps setHour:8];
[comps setMinute:60-[_beforeTimeintValue]];
[comps setSecond:0];
NSDate *newFireDate = [[[NSCalendarcurrentCalendar]dateFromComponents:comps]dateByAddingTimeInterval:3600 * 24 * days];
[selfscheduleNotificationWithItem:[NSStringstringWithFormat:@"离上班时间还有%@分钟,记得签到哦!",_beforeTime]fireDate:newFireDate];
[comps2 setHour:18];
[comps2 setMinute:[_afterTimeintValue]];
[comps2 setSecond:0];
NSDate *newFireDate2 = [[[NSCalendarcurrentCalendar]dateFromComponents:comps2]dateByAddingTimeInterval:3600 * 24 * days];
[selfscheduleNotificationWithItem:[NSStringstringWithFormat:@"下班时间已过%@分钟,记得签到哦!",_afterTime]fireDate:newFireDate2];
}
}
- (void)scheduleNotificationWithItem:(NSString *)alertItem fireDate:(NSDate*)date
{
//[[UIApplication sharedApplication] cancelAllLocalNotifications];
//初始化
UILocalNotification *locationNotification = [[UILocalNotificationalloc]init];
locationNotification.fireDate =date;
//NSLog(@"推送时间%@",locationNotification.fireDate);
locationNotification.timeZone = [NSTimeZonedefaultTimeZone];
//设置重复周期
locationNotification.repeatInterval =kCFCalendarUnitWeek;
//设置通知的音乐
locationNotification.soundName =UILocalNotificationDefaultSoundName;
//设置通知内容
locationNotification.alertBody = alertItem;
NSDictionary *infoDic = [NSDictionarydictionaryWithObjectsAndKeys:LOCAL_NOTIFY_SCHEDULE_ID,@"id",nil];
locationNotification.userInfo = infoDic;
//执行本地推送
[[UIApplicationsharedApplication]scheduleLocalNotification:locationNotification];
}
-(void)cancelNotification
{
//取消通知
//获取当前所有的本地通知
NSArray *notificaitons = [[UIApplicationsharedApplication]scheduledLocalNotifications];
if (!notificaitons || notificaitons.count <= 0)
{
return;
}
//取消一个特定的通知
for (UILocalNotification *notifyin notificaitons)
{
if ([[notify.userInfoobjectForKey:@"id"]isEqualToString:LOCAL_NOTIFY_SCHEDULE_ID])
{
[[UIApplicationsharedApplication]cancelLocalNotification:notify];
}
}
-(void)setRemindTime
{
//取得系统的时间,并将其一个个赋值给变量
NSDate* now = [NSDatedate];
NSCalendar *calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger unitFlags =NSYearCalendarUnit |NSMonthCalendarUnit |NSDayCalendarUnit |NSWeekCalendarUnit|NSWeekdayCalendarUnit |
NSHourCalendarUnit |NSMinuteCalendarUnit |NSSecondCalendarUnit;
NSDateComponents *comps = [[NSDateComponentsalloc]init];
comps = [calendar components:unitFlagsfromDate:now];
NSDateComponents *comps2 = [[NSDateComponentsalloc]init];
comps2 = [calendar components:unitFlagsfromDate:now];
// int hour = [comps hour];
// int min = [comps minute];
// int sec = [comps second];
for (int newWeekDay =2; newWeekDay<=6; newWeekDay++) {
int temp = 0;
int days = 0;
temp = newWeekDay - comps.weekday;
days = (temp >= 0 ? temp : temp + 7);
[comps setHour:8];
[comps setMinute:60-[_beforeTimeintValue]];
[comps setSecond:0];
NSDate *newFireDate = [[[NSCalendarcurrentCalendar]dateFromComponents:comps]dateByAddingTimeInterval:3600 * 24 * days];
[selfscheduleNotificationWithItem:[NSStringstringWithFormat:@"离上班时间还有%@分钟,记得签到哦!",_beforeTime]fireDate:newFireDate];
[comps2 setHour:18];
[comps2 setMinute:[_afterTimeintValue]];
[comps2 setSecond:0];
NSDate *newFireDate2 = [[[NSCalendarcurrentCalendar]dateFromComponents:comps2]dateByAddingTimeInterval:3600 * 24 * days];
[selfscheduleNotificationWithItem:[NSStringstringWithFormat:@"下班时间已过%@分钟,记得签到哦!",_afterTime]fireDate:newFireDate2];
}
}
- (void)scheduleNotificationWithItem:(NSString *)alertItem fireDate:(NSDate*)date
{
//[[UIApplication sharedApplication] cancelAllLocalNotifications];
//初始化
UILocalNotification *locationNotification = [[UILocalNotificationalloc]init];
locationNotification.fireDate =date;
//NSLog(@"推送时间%@",locationNotification.fireDate);
locationNotification.timeZone = [NSTimeZonedefaultTimeZone];
//设置重复周期
locationNotification.repeatInterval =kCFCalendarUnitWeek;
//设置通知的音乐
locationNotification.soundName =UILocalNotificationDefaultSoundName;
//设置通知内容
locationNotification.alertBody = alertItem;
NSDictionary *infoDic = [NSDictionarydictionaryWithObjectsAndKeys:LOCAL_NOTIFY_SCHEDULE_ID,@"id",nil];
locationNotification.userInfo = infoDic;
//执行本地推送
[[UIApplicationsharedApplication]scheduleLocalNotification:locationNotification];
}
-(void)cancelNotification
{
//取消通知
//获取当前所有的本地通知
NSArray *notificaitons = [[UIApplicationsharedApplication]scheduledLocalNotifications];
if (!notificaitons || notificaitons.count <= 0)
{
return;
}
//取消一个特定的通知
for (UILocalNotification *notifyin notificaitons)
{
if ([[notify.userInfoobjectForKey:@"id"]isEqualToString:LOCAL_NOTIFY_SCHEDULE_ID])
{
[[UIApplicationsharedApplication]cancelLocalNotification:notify];
}
}
}
0 0
- UILocalNotification 本地推送 周一到周五重复提醒
- iOS本地通知UILocalNotification--重复提醒(周一、周二、周三...)
- UILocalNotification 实现 本地 提醒
- 本地推送 UILocalNotification
- 本地推送 UILocalNotification
- 本地推送UILocalNotification
- 本地推送UILocalNotification
- 本地推送 UILocalNotification
- 本地推送UILocalNotification
- UILocalNotification本地推送机制
- 本地推送UILocalNotification
- 本地推送UILocalNotification
- iOS 本地推送 UILocalNotification
- UILocalNotification本地推送
- 本地推送UILocalNotification(整理)
- 本地推送UILocalNotification
- 本地推送通知UILocalNotification
- iOS 本地推送 UILocalNotification
- 第一次使用Android Studio所遇到的问题
- hdu 1231 最大连续子序列
- 开篇之作
- POJ 3114 强联通分量+最短路
- SNMP协议详解
- UILocalNotification 本地推送 周一到周五重复提醒
- HDU-1166-敌兵布阵【树状数组】
- 小指数rsa 多线程版writeup
- java初始化顺序
- python多进程
- 隐马尔科夫模型
- tjut 3072
- 多校三(三维坐标)
- 【备战NOIP2012图论专项模拟试题】砍树