UILocal 通知未显示

Posted

技术标签:

【中文标题】UILocal 通知未显示【英文标题】:UILocal notifications not showing 【发布时间】:2012-02-22 19:10:13 【问题描述】:

我无法显示本地通知。我在iphone上测试。它们根本没有出现,生成的日期似乎比输入日期早一个小时。 19 变成 18 以此类推。

如何在考虑用户时区的情况下在 7 点启用这些本地通知?

   NSCalendar* myCalendar = [NSCalendar currentCalendar];
    NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
    [components setHour: 19];
    [components setMinute:00];
    NSDate *todayAt7 = [myCalendar dateFromComponents:components];



UILocalNotification *dailyNotification = [[UILocalNotification alloc] init];
dailyNotification.fireDate = todayAt7; // set this to 7pm 
dailyNotification.timeZone = [NSTimeZone defaultTimeZone]; 
dailyNotification.repeatInterval = NSDayCalendarUnit;
dailyNotification.soundName = UILocalNotificationDefaultSoundName;
dailyNotification.alertBody = @"You need to enter data for today.";

【问题讨论】:

【参考方案1】:

第一个问题是,当您创建组件实例时,您并没有要求小时和分钟组件。此外,您应该使用NSCalendar *myCalendar = [NSCalendar autoupdatingCurrentCalendar]; 而不是 currentCalendar。

第二个问题,至少你没有显示它的代码,但你实际上并没有安排通知对象。见[UIApplication scheduleLocalNotification:]

【讨论】:

我确实没有安排!即使在询问小时后,我仍然遇到小时差的问题: NSDateComponents* components = [myCalendar components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit) fromDate:[NSDate date]]; 试试NSCalendar *myCalendar = [NSCalendar autoupdatingCurrentCalendar]; ok 现在似乎可以工作,即使在日期的 NSLog 中它显示的时间比组件中输入的时间早一个小时。很奇怪。

以上是关于UILocal 通知未显示的主要内容,如果未能解决你的问题,请参考以下文章

如何在工作日的选择列表上设置重复的 UILocal 通知

推送通知未显示在通知栏上

通知未显示在 Android 设备上。 (Azure 通知中心)

奥利奥中未显示通知

Android推送通知:通知中未显示图标,而是显示白色方块

Android 应用在前台未显示 Azure 通知中心通知