2015-07-13 2 views
1

В течение нескольких минут я получил два разных местных уведомления одновременно. Но номер жетона в приложение шоу «1» вместо «2»местный номер значка уведомления не более одного

мой код:

var localNotification = UILocalNotification() 

localNotification.userInfo = ["UUID": FirstReminderString, ] 
localNotification.fireDate = SameDay 
localNotification.alertBody = "Reminder !" 
localNotification.timeZone = NSTimeZone.defaultTimeZone() 
localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 

UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
+0

Возможно, вы найдете полезную дополнительную информацию в [соответствующем вопросе] (http://stackoverflow.com/questions/5962054/iphone-incrementing-the-application-badge-through-a-local-notification). –

+0

В порядке, это означает, что до того, как будет зарегистрировано новое уведомление, я должен проверить, сколько уведомлений будет активным в тот же день и получить этот номер счета + 1 для нового? Как можно проверить количество уведомлений в день? – Ghost108

ответ

0

При планировании уведомления, текущий номер жетона берется (и это, вероятно, 0). Таким образом, новый номер значка будет равен 1 для всех уведомлений, которые вы планируете, до того, как число значков увеличивается.

1

Если ваше приложение находится в режиме переднего плана: вы можете настроить номер жетона на следующий код:

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { 

    application.applicationIconBadgeNumber = application.applicationIconBadgeNumber + 1; // increase counter 
} 

Этот метод не будет вызываться, если приложение работает в фоновом режиме.

Так что мы должны сделать что-то в сервере следующим образом:

func sendLocalNotif(notifCountAlreadySent:Int) { 

    var localNotification = UILocalNotification() 

    localNotification.userInfo = ["UUID": FirstReminderString, ] 
    localNotification.fireDate = SameDay 
    localNotification.alertBody = "Reminder !" 
    localNotification.timeZone = NSTimeZone.defaultTimeZone() 
    localNotification.applicationIconBadgeNumber = notifCountAlreadySent + 1 

    UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
} 

Смотрите, если это помогает. Эта функция получает номер отслеживания. Это используется как номер значка. Вы должны просто отслеживать, сколько уведомлений уже отправлено.

+0

thx, но мне нужно решение, которое задает номер значка уведомлений локального получателя на данный момент - в то время как приложение в фоновом режиме тоже – Ghost108

+0

@ Ghost108 Вы написали: «два разных локальных оповещения». У вас есть доступ к этим двум местным отправителям уведомлений? –

+0

sry для missunstandnig. два локальных уведомления с различным контентом. , но firedate и время одинаково – Ghost108

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