2016-06-13 2 views
0

Я новичок в разработке iOS! Я попытался создать приложение с UILocalNotification. Вот что я сделал:Приложение IconBadgeNumber не обновляется и не увеличивается

func createLocalNotification(structure:Structure) { 

     let localNotification = UILocalNotification() 
     localNotification.category = "CATEGORY" 
     localNotification.alertBody = "\(structure.messageBody)" 
     localNotification.alertAction = "see" 
     localNotification.soundName = UILocalNotificationDefaultSoundName 
     localNotification.userInfo = ["uuid":structure.UUID] 
     localNotification.fireDate = structure.date 
     localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 

     print(localNotification) 

     UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
} 

Это хорошо работает! Моя проблемная строка - applicationBadgeNumber. Кажется, это работает property. Но не увеличивается, когда приложение неактивно. И затем запускается приложение. Xcode дает мне такую ​​ошибку:

Снимки изображения, которое не было отображено, приводит к пустым моментальным снимкам. Убедитесь, что ваше представление было просмотрено как минимум один раз перед моментальным снимком или снимком после обновлений экрана.

Что это значит? Что случилось? Спасибо за вашу помощь!

ответ

1

Поскольку у меня нет достаточного количества заметок для комментариев. Единственный способ, которым вы сможете динамически устанавливать номер значка, когда ваше приложение не работает, - это push-уведомления. Вам нужно будет отслеживать обновления на стороне сервера.

Невозможно динамически обновлять номер значка локальными уведомлениями, пока ваше приложение находится в фоновом режиме. Вы должны использовать push-уведомления.

1

Вы пробовали настроить параметры регистрации с помощью Sound и Badge?

Что-то вроде этого: (часть взята из this link)

@IBAction func registerLocal(sender: AnyObject) { 
    let notificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
    UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings) 
}