美文网首页
签到签退提醒

签到签退提醒

作者: Loki_ | 来源:发表于2016-06-02 11:10 被阅读289次

需求说明:

还有5(10,15)分钟到上班时间时推送提醒消息,下班时间已过5(10,15)分钟时推送提醒消息,上班和下班时间均为从服务器获取的配置时间

NSDateFormatter*df=[[NSDateFormatteralloc]init];

[dfsetTimeZone:[NSTimeZonetimeZoneWithAbbreviation:@"UTC"]];

[dfsetDateFormat:@"HH:mm:ss"];

NSDate*date = [NSDatedate];

NSTimeZone*zone =

[NSTimeZonesystemTimeZone];

NSIntegerinterval =

[zonesecondsFromGMTForDate: date];

NSDate*localeDate =  [datedateByAddingTimeInterval: interval];

NSString*localStr =

[dfstringFromDate:localeDate];

NSDate*localDate =

[dfdateFromString:localStr];

//获取上班时间

NSString* amTime =

[responseObjectobjectForKey:@"am"];

NSDate*amDate=[dfdateFromString:amTime];

//获取下班时间

NSString* pmTime =

[responseObjectobjectForKey:@"pm"];

NSDate*pmDate=[dfdateFromString:pmTime];

if([[UIApplicationsharedApplication]currentUserNotificationSettings].types!=UIUserNotificationTypeNone) {

if(inRemind ==YES) {

if([label.textisEqualToString:@"提前5分钟提醒"]) {

NSDate*advanceTime = [NSDatedateWithTimeInterval:-60*5sinceDate:amDate];

NSTimeIntervalinRemindTime=[advanceTimetimeIntervalSinceDate:localDate];

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:inRemindTime];//通知触发的时间,10s以后

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//设置通知属性

notification.alertBody=@"还有5分钟,记得签到哦!";//通知主体

////notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}elseif([label.textisEqualToString:@"提前10分钟提醒"]){

NSDate*advanceTime = [NSDatedateWithTimeInterval:-60*10sinceDate:amDate];

NSTimeIntervalinRemindTime=[advanceTimetimeIntervalSinceDate:localDate];

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:inRemindTime];

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//notification.repeatInterval=2;//通知重复次数

//notification.repeatCalendar=[NSCalendar

currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间

//设置通知属性

notification.alertBody=@"还有10分钟,记得签到哦!";//通知主体

//notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//notification.soundName=@"msg.caf";//通知声音(需要真机才能听到声音)

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}elseif([label.textisEqualToString:@"提前15分钟提醒"]){

NSDate*advanceTime = [NSDatedateWithTimeInterval:-60*15sinceDate:amDate];

NSTimeIntervalinRemindTime=[advanceTimetimeIntervalSinceDate:localDate];

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:inRemindTime];

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//notification.repeatInterval=2;//通知重复次数

//notification.repeatCalendar=[NSCalendar

currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间

//设置通知属性

notification.alertBody=@"还有15分钟,记得签到哦!";//通知主体

//notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//notification.soundName=@"msg.caf";//通知声音(需要真机才能听到声音)

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}

}

if(outRemind ==YES) {

if([label2.textisEqualToString:@"延后5分钟提醒"]) {

NSDate*delayTime = [NSDatedateWithTimeInterval:60*5sinceDate:pmDate];

NSTimeIntervaloutRemindTime=[delayTimetimeIntervalSinceDate:localDate];

if(outRemindTime >0) {

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:outRemindTime];//通知触发的时间,10s以后

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//设置通知属性

notification.alertBody=@"辛苦了一天,别忘了签退!";//通知主体

//notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}

}elseif([label2.textisEqualToString:@"延后10分钟提醒"]) {

NSDate*delayTime = [NSDatedateWithTimeInterval:60*10sinceDate:pmDate];

NSTimeIntervaloutRemindTime=[delayTimetimeIntervalSinceDate:localDate];

if(outRemindTime >0) {

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:outRemindTime];//通知触发的时间,10s以后

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//设置通知属性

notification.alertBody=@"辛苦了一天,别忘了签退!";//通知主体

//notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}

}elseif([label2.textisEqualToString:@"延后15分钟提醒"]) {

NSDate*delayTime = [NSDatedateWithTimeInterval:60*15sinceDate:pmDate];

NSTimeIntervaloutRemindTime=[delayTimetimeIntervalSinceDate:localDate];

if(outRemindTime >0) {

UILocalNotification*notification=[[UILocalNotificationalloc]init];

//设置调用时间

notification.fireDate=[NSDatedateWithTimeIntervalSinceNow:outRemindTime];//通知触发的时间,10s以后

notification.repeatInterval=kCFCalendarUnitDay;//循环通知的周期

//设置通知属性

notification.alertBody=@"辛苦了一天,别忘了签退!";//通知主体

//notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数

notification.alertAction=@"打开应用";//待机界面的滑动动作提示

notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片

notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音

//设置用户信息

notification.userInfo=@{@"id":@1,@"user":@"Kenshin

Cui"};//绑定到通知上的其他附加信息

//调用通知

[[UIApplicationsharedApplication]scheduleLocalNotification:notification];

}

}

}

}else{

[[UIApplicationsharedApplication]registerUserNotificationSettings:[UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSoundcategories:nil]];

}

相关文章

  • 签到签退提醒

    需求说明: 还有5(10,15)分钟到上班时间时推送提醒消息,下班时间已过5(10,15)分钟时推送提醒消息,上班...

  • 2017-05-25

    签到 签退

  • 开心的一天

    今天开始培训,我也跟着忙碌起来。 一天四次打卡,上午签到,还得签退,下午签到,同样签退,非常严格。忙得老李也顾不上...

  • 签到码签退退不了

    今天去了西村溪菜场,维护秩序,下班4:30回来,然后洗下澡,然后就开车就走了6:00签到。遗憾的是,我今天是第一次...

  • 连环会

    连环会 发布时间:2018/6/29 16:10:00 发布者:凤凰 上午: 签到 开会 签退 下午: 签到 开会...

  • 感想——三则

    一 闹钟 除了早上的起床闹钟,每天中有过不止一个时刻,恨不得定一百个闹钟来提醒自己。 昨天签退,发现早上的签到还...

  • 基于bmob的微信小程序---大学签到

    大学签到学习的小程序展示 基本功能: 1.一键签到,一键签退 2.班级签到统计 3.临时活动签到 4.临时签到统计...

  • 情况说明书

    开学的第一天,因为签到时间不对,我看看签到机,在纸质的签到表上签上名字就离开了。下午也是一样,没有签到,可是签退啦...

  • 今日份不美好,我哭

    我真的是哭唧唧了,我的天呐!上网课要签到签退。忘了签退就算早退。三次早退算一次旷课。我已经有了两次了。重要的是我...

  • 公司那些事(二)

    去年3月份,公司正式开始使用oa系统,随之而来的是一系列考核。上下班使用系统进行签到、签退。如果某天忘记签到...

网友评论

      本文标题:签到签退提醒

      本文链接:https://www.haomeiwen.com/subject/wmqkdttx.html