Как удалить значок, но не удалить все уведомления?

Если у пользователя установлен стиль оповещения "Баннеры". Они могут получить более 1 уведомления без запроса на их очистку.

Я видел те же самые приложения. Если щелкнуть последнюю версию, и она откроет приложение, удалите только это уведомление и удалите значок;

Если я использую

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

Он очистит все полученные уведомления.

Так как удалить значок, но не удалить все уведомления?

2 ответа

Вот еще один пример должен работать для iOS 11(код в Swift 4.1):

if #available(iOS 11.0, *) {
   let content = UNMutableNotificationContent()
   content.badge = -1
   let request = UNNotificationRequest(identifier: "clearBadge", content: content, trigger: nil)
   UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
} else {
   UIApplication.shared.applicationIconBadgeNumber = -1
}

Хорошо, я нахожу ответ в этом

добавить новое уведомление, значок которого -1.

- (void)applicationDidEnterBackground:(UIApplication *)application {
      if (iOS11) {
            UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
            content.badge = @(-1);
            UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"clearBadge" content:content trigger:nil];
            [[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
            }];
      } else {
            UILocalNotification *clearEpisodeNotification = [[UILocalNotification alloc] init];
            clearEpisodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:1];
            clearEpisodeNotification.timeZone = [NSTimeZone defaultTimeZone];
            clearEpisodeNotification.applicationIconBadgeNumber = -1;
            [[UIApplication sharedApplication] scheduleLocalNotification:clearEpisodeNotification];
      }
}

Тогда значок будет удален, а другие уведомления нет.

Другие вопросы по тегам