特定日期的本地通知

Posted

技术标签:

【中文标题】特定日期的本地通知【英文标题】:Local Notification on specific days 【发布时间】:2015-07-28 17:21:33 【问题描述】:

我想在每周三下午 6 点重复本地通知消息。

我该怎么做?

目前我使用以下代码。但即使我尝试,此时也没有任何反应。我记录了 UIDate,它显示了 0001-01-01 17:25:52。我想通了,这是错误的时区。我在 CEST 时区。我该如何改变呢?

- (void)applicationDidEnterBackground:(UIApplication *)application 

//Calendar
NSCalendar *gregCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *dateCompnent = [gregCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitWeekday fromDate:[NSDate date]];

[dateCompnent setWeekday:4];
[dateCompnent setHour:18];
[dateCompnent setMinute:00];

UIDatePicker *dd = [[UIDatePicker alloc] init];
[dd setDate:[gregCalendar dateFromComponents:dateCompnent]];

//Notification
UILocalNotification *notification = [[UILocalNotification alloc] init];
[notification setAlertBody:@"Test Notification"];
[notification setFireDate:dd.date];
[notification setSoundName:@"sound.mp3"];
[notification setTimeZone:[NSTimeZone defaultTimeZone]];
[application setScheduledLocalNotifications:[NSArray arrayWithObject:notification]];

【问题讨论】:

[NSTimeZone defaultTimeZone] 可能不适合您。另请看this localTimeZone 是什么? 【参考方案1】:

您必须在日期组件中添加年、月和日。

另请参阅此博客文章以安排重复的本地通知。

http://useyourloaf.com/blog/2010/09/13/repeating-an-ios-local-notification.html

【讨论】:

以上是关于特定日期的本地通知的主要内容,如果未能解决你的问题,请参考以下文章

特定日期的本地通知

iOS 10:如何在特定日期触发后重复本地通知?

设置特定日期和时间的本地通知 swift 3

如何阻止计划的本地通知在特定日期后触发?

针对特定日期重复本地通知 iOS 10

特定日期和时间的本地通知不起作用。迅速