Как правило, я не могу правильно обновить значок значка на панели вкладок своего приложения, если приложение установлено на заднем плане, так как функции делегата didReceiveRemoteNotification и UNUserNotificationCenter не вызываются, поэтому я не могу сохранить значение входящего значка значка.
Я прочитал много сообщений об этом. Возможно, этот didReceiveRemoteNotification является более старым методом делегата, поскольку в одном посте было предложено использовать UNUserNotificationCenter, которым я и являюсь. Я зарегистрировался для уведомления, используя это:
func requestNotifications(application: UIApplication) {
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.alert, .sound]) {
(granted, error) in
if !granted {
NSLog("Failed to get token, error: Notifications are not allowed")
} else {
DispatchQueue.main.async() {
application.registerForRemoteNotifications()
}
}
}
}
Однако ни одна из функций делегата в моем appDelegate не вызывается:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
и
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
Я не знаю, что я делаю неправильно. Это что-то на стороне Twilio или на моей стороне? Я все сделал правильно, запросил у пользователей разрешение на уведомления и зарегистрировал center.delegate для себя, как вы можете видеть выше.
Также номер значка на значке приложения не обновляется должным образом. В первый раз, когда вы получаете уведомление, всегда 2, только одно уведомление, так почему же оно не просто говорит 1? Это проблема Twilio?
Помогите полностью застрять ...