Как удалить значок значка iOS-приложения после его закрытия?
Я хочу установить значок значка приложения iOS на ноль (при котором значок исчезает с значка) после завершения работы приложения. (... со Swift 4, iOS 10.x, 11.x)
В моем ViewController я успешно запросил локальное уведомление, как это:
@objc func requestLocalNotification() -> Bool {
let center = UNUserNotificationCenter.current()
var result = true
center.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
if granted {
result = true
} else {
result = false
}
}
return result
}
И я успешно установил значок значка приложения с этим:
@objc func notifyBadge(_ badge: Int) {
let content = UNMutableNotificationContent()
content.badge = badge as NSNumber
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)
}
Я могу удалить значок, когда приложение запускается с этим в AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.applicationIconBadgeNumber = 0
return true
}
Казалось, имеет смысл попытаться сделать это здесь, когда пользователь дважды нажимает кнопку "Домой":
func applicationWillTerminate(_ application: UIApplication) {
application.applicationIconBadgeNumber = 0
}
Но это не работает.
Я попытался использовать общий объект приложения вместо переданного параметра приложения:
UIApplication.shared.applicationIconBadgeNumber = 0
Есть похожие вопросы (и ответы) на SO, чтобы сбросить значок значка приложения, но я нашел только 1, который относится к выполнению этого, когда приложение закрывается пользователем:
iphone, как поймать, если приложение закрывается, чтобы обновить значок значка
Но этому вопросу уже более 5 лет, и на самом деле решение не было найдено. Возможно, кто-то нашел способ сделать это с тех пор?