Как вы устанавливаете applicationIconBadgeNumber с scheduleLocalNotification? - PullRequest
5 голосов
/ 19 января 2012

У меня возникают трудности с установкой значка с локальным уведомлением по расписанию для моего приложения ios.

Я могу вызвать всплывающее локальное уведомление через 10 секунд после нажатия на главный экран после загрузкиприложение.Однако номер значка приложения не устанавливается.Я использую следующий код.

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
NSDate *fireTime = [[NSDate date] addTimeInterval:10]; // adds 10 secs
localNotif.fireDate = fireTime;
localNotif.alertBody = @"New Message!";
localNotif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

Я не понимаю, почему всплывает локальное уведомление, но applicationIconBadgeNumber не устанавливается.Я могу установить номер значка значка вручную, выполнив следующий код:

[UIApplication sharedApplication].applicationIconBadgeNumber = 1;

Ответы [ 3 ]

3 голосов
/ 04 февраля 2012

вы регистрируете свое приложение для всех типов уведомлений о бейджах?

[[UIApplication sharedApplication]registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge]; 

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

3 голосов
/ 19 января 2012

Вы отлаживаете в симуляторе? Та же проблема на симуляторе, но ваш код отлично работает на моем iPhone.

2 голосов
/ 28 июля 2015

Вот код для iOS 8+ в Swift ...

let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert , UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: nil)
application.registerUserNotificationSettings(notificationSettings)
...