Очистить applicationIconBadgeNumber без удаления уведомлений не работает

Я прочитал несколько постов (например, https: //forums.developer. apple.com/thread/7598 ) этот параметр

    application.applicationIconBadgeNumber = -1

на applicationDidBecomeActive или applicationWillEnterForeground позвольте мне очистить номер значка, не удаляя уведомления из центра уведомлений. Когда я устанавливаю application.applicationIconBadgeNumber на отрицательное число (например, -1), он очищает все мои уведомления от Notification Center. Есть ли другой способ очистить номер значка, не удаляя notifications?

7 голосов | спросил Marie Amida 13 J0000006Europe/Moscow 2016, 15:12:55

1 ответ


0

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

if(badgeCount == 0) {
   //set application badge indirectly with UILocalNotification
   UILocalNotification *ln = [[UILocalNotification alloc]init];
   ln.applicationIconBadgeNumber = -1;
   [[UIApplication sharedApplication] presentLocalNotificationNow:ln];
}
else {
   [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeCount];
}

Swift Version

if badgeCount == 0 {
    //set application badge indirectly with UILocalNotification
    var ln = UILocalNotification()
    ln.applicationIconBadgeNumber = -1
    UIApplication.sharedApplication().presentLocalNotificationNow(ln)
}
else {
    UIApplication.sharedApplication().applicationIconBadgeNumber = badgeCount
}

Подход проверен на iOS 9 и 10.

ответил Irfan Gul 20 Jam1000000amFri, 20 Jan 2017 10:16:22 +030017 2017, 10:16:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132