2015-01-25 4 views
1

Я хочу установить будильник в iOS приложение.UILocalNotification: set iOS Тревога не работает

Я пробовал это согласно How to set an Alarm in iOS?. Вот мой основной код:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
     [localNotif setFireDate:self.datePicker.date]; 
     localNotif.timeZone = [NSTimeZone defaultTimeZone]; 
     NSLog(@"fireDate %@", localNotif.fireDate); 
     NSLog(@"datepicker %@", self.datePicker.date); 

     [localNotif setRepeatInterval:0]; 
     localNotif.alertBody = @"some text"; 
     localNotif.soundName = UILocalNotificationDefaultSoundName; 
     localNotif.alertAction = @"..."; 

     [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 

И я также обнаружил, что: в iOS8,

В прошивкой 8.0 и более поздних версиях приложение должно зарегистрировать пользователей уведомлений с помощью - [UIApplication registerUserNotificationSettings: ] , прежде чем быть в состоянии планировать и представить UILocalNotifications

Итак, я добавляю протекающий в - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
     UIUserNotificationType types = UIUserNotificationTypeBadge | 
     UIUserNotificationTypeSound | UIUserNotificationTypeAlert; 

     UIUserNotificationSettings *mySettings = 
     [UIUserNotificationSettings settingsForTypes:types categories:nil]; 

     [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; 

    } 

К моему разочарованию, когда наступила дата пожара, ничего не произошло. Я пропустил другой важный код?

+0

и ** NSLog (@ "текущее уведомление:% @", [[UIApplication sharedApplication] currentUserNotificationSettings]); ** выполнили печать настроек уведомлений. – chenzhongpu

+0

Как вы протестировали? Открылось ли приложение? Были ли реализованы методы делегирования приложений для LN с протоколированием? – Wain

+0

Я тестирую его на своем iPhone, и это приложение всегда находится в шрифте. – chenzhongpu

ответ

3

Локальные уведомления отображаются только iOS, когда приложение закрыто. Если приложение открыто, вам необходимо реализовать методы делегирования приложения для получения локальных уведомлений и отображения события самостоятельно.

Смежные вопросы