Регистрация в системе Local Notification осуществляет метод scheduleLocalNotification: класса UIApplication. Параметром этого метода служит объект класса UILocalNotification. Код который осуществляет отсылку сообщения:
- UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];
- if (alarm)
- {
- alarm.fireDate = [[NSDate date] dateByAddingTimeInterval:30.0];
- alarm.timeZone = [NSTimeZone defaultTimeZone];
- alarm.repeatInterval = 0;
- alarm.alertBody = @"local notification";
- UIApplication *app = [UIApplication sharedApplication];
- [app scheduleLocalNotification:alarm];
- }
Этот код создает объект alarm типа alert c текстом "local notification" и регистрирует его в системе как событие, которое произойдет через 30 сек.
Посмотреть зарегистрированные в системе от вашего приложении нотификации позволяет метод scheduledLocalNotifications. Отменить все нотификации можно методом cancelAllLocalNotifications.
Что э происходит если событие нотификации происходит при запущенном приложении? Системных событий тогда никаких не происходит (не звуков не проигрывается, не показывается всплывающее окно), но делегату вашего приложения приходит событие application:didReceiveLocalNotification: в котором можно обработать сообщение.
Пример работы.
Хм, интересно, а как можно удалить записанное событие?
ОтветитьУдалитьЛегко, метод scheduledLocalNotifications у UIApplication возвращает список зарегистрированных на веше приложение событий, а cancelLocalNotification: - удаляет событиие.
ОтветитьУдалитьБольшое спасибо!
ОтветитьУдалитьХороший стотья :)
ОтветитьУдалить