首页 > 其他 > 详细

自定义本地推送通知(UILocalNotification) 星期和时间

时间:2016-01-13 02:18:28      阅读:255      评论:0      收藏:0      [点我收藏+]

?

//创建本地通知

UILocalNotification *localNote = [[UILocalNotificationalloc] init];

//自定义(星期和时间)

NSDate * newDate = [selfgetNextWeekDay:2hour:20minute:25];

? ? self.localNote.fireDate = newDate;

//设置重复周期为:(若每天重复使用属性NSCalendarUnitDayNSCalendarUnitWeekDay)

? ? self.localNote.repeatInterval = kCFCalendarUnitWeek;

? ? self.localNote.timeZone = [NSTimeZonedefaultTimeZone];

? ? self.localNote.alertLaunchImage = @"default-banner.png";

? ? self.localNote.hasAction = YES;

? ? self.localNote.soundName = UILocalNotificationDefaultSoundName;

? ? self.localNote.alertAction = @"通知";

?

? ??self.localNote.alertBody = @"新的通知~~!";

//? ? 移除旧的通知,防止重复添加

? ? [[UIApplicationsharedApplication] cancelAllLocalNotifications];

?

? ??[[UIApplicationsharedApplication] scheduleLocalNotification:self.localNote];

?

/**

?*? 获取下一个新的星期日期

?*

?*? @param newWeekDay 星期数值从周日算起,星期日1/星期一2/星期二3...星期六7

?*? @param hour ? ? ? 设定的小时值

?*? @param minute ? ? 设定的分钟值

?*

?*? @return返回新的日期(NSDate对象)

?*/

?

-(NSDate *)getNextWeekDay:(int)newWeekDay hour:(int)hour minute:(int)minute{

? ? NSDateComponents * components = [[NSCalendarcurrentCalendar] components:NSCalendarUnitWeekday|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecondfromDate:[NSDatedate]];

?? ?

? ? HTLog(@"设置的weekday = %d", newWeekDay);

?? ?

? ? NSDateComponents *comps = [[NSDateComponentsalloc] init] ;

?? ?

? ? NSInteger unitFlags = NSCalendarUnitEra |

? ? NSCalendarUnitYear |

? ? NSCalendarUnitMonth |

? ? NSCalendarUnitDay |

? ? NSCalendarUnitHour |

? ? NSCalendarUnitMinute |

? ? NSCalendarUnitSecond |

? ? NSWeekCalendarUnit |

? ? NSCalendarUnitWeekday |

? ? NSCalendarUnitWeekdayOrdinal |

? ? NSCalendarUnitQuarter;

?? ?

? ? comps = [[NSCalendarcurrentCalendar] components:unitFlags fromDate:[NSDatedate]];

? ? [comps setHour:hour];

? ? [comps setMinute:minute];

? ? [comps setSecond:0];

?? ?

? ? int temp = 0;

? ? int days = 0;

?? ?

? ? temp = newWeekDay - components.weekday;

? ? days = (temp >= 0 ? temp : temp + 7);

? ? NSDate *newFireDate = [[[NSCalendarcurrentCalendar] dateFromComponents:comps] dateByAddingTimeInterval:3600 * 24 * days];

? ? return newFireDate;

?

}

自定义本地推送通知(UILocalNotification) 星期和时间

原文:http://zht1933.iteye.com/blog/2270186

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!