Локальное уведомление не работает на iOS5 - PullRequest
5 голосов
/ 01 ноября 2011

После настройки всего в центре уведомлений, который позволяет приложению отображать уведомление, локальное уведомление моего приложения не запускается.

Вы сталкиваетесь с той же проблемой?

больше информации:

  1. Одно и то же приложение, скомпилированное из того же исходного кода несколько дней назад, которое скомпилировано с XCode 4.1 и iOS 4.3 SDK, все работает хорошо.

  2. Кроме того, приложение, скомпилированное со старой версией XCode и iOS SDK, может работать на iOS5 после обновления.

Однако приложение, скомпилированное с тем же кодом, но XCode 4.2 и iOS5 SDK, не работает.

У вас есть идеи? Или есть какая-то специальная работа для iOS5?

Пример кода:

UIApplication *app = [UIApplication sharedApplication];
NSArray *oldNotifications = [app scheduledLocalNotifications];

// Clear out the old notification before scheduling a new one.
if (0 < [oldNotifications count]) {

    [app cancelAllLocalNotifications];
} 

// Create a new notification
UILocalNotification *alarm = [[UILocalNotification alloc] init];
if (alarm) {

    alarm.fireDate = theDate;
    alarm.timeZone = [NSTimeZone defaultTimeZone];
    alarm.repeatInterval = NSDayCalendarUnit; //repeat every day
    alarm.alertBody = [NSString stringWithFormat:@"alert"];     
    [app scheduleLocalNotification:alarm];
    [alarm release];
}

Спасибо, Michael

1 Ответ

11 голосов
/ 02 ноября 2011

В iOS 5 уведомлениями управляет Центр уведомлений.Вам необходимо зарегистрировать свое приложение в Центре уведомлений (программно) или (не программно) перейти на Settings > Notifications и выбрать соответствующие настройки, например включить Центр уведомлений, выбрать Стиль оповещения и другие.

Вы можете использоватьследующий фрагмент кода для регистрации приложения в Центре уведомлений (программно), поместив его в applicationDidFinishLaunching::

// Although Register For Remote Notifications is not required for Local Notifications,
// but in iOS 5's Notifications, we have to register otherwise the system doesn't register/recognize
// the notifications posted from the application. Note that this behavior is not documented
// as of Oct 2011, and it's possible that it's a bug and will be handled in the future releases.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
 UIRemoteNotificationTypeAlert |
 UIRemoteNotificationTypeSound];

HTH.

...