Показывать номер значка при получении уведомления - PullRequest
0 голосов
/ 12 сентября 2018

Когда уведомление поступает в приложение, с номером значка не происходит никаких действий.Я установил фоновый режим на Возможности.

И есть еще одна проблема.Этот метод не вызывается, когда приложение работает в фоновом режиме.

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    print("Push notification received2: \(userInfo)")
    completionHandler(UIBackgroundFetchResult.noData)
}

PS: UIApplication.shared.applicationIconBadgeNumber не отвечает.Я знаю это.Проблема даже в том, что приложение получает push-уведомление, номер значка не обновляется.

1 Ответ

0 голосов
/ 12 сентября 2018

APNS не поддерживает операции приращения для значков.каждое сгенерированное push-уведомление должно указывать текущее значение.

, поэтому нам нужно, чтобы где-то был сервис / сервер, отслеживающий, какие значки должны быть для каждого из ваших пользователей

например, добавьте один ключ badge в свою полезную нагрузку, получите счетчик вашего значка и увеличьте счетчик, следуя примеру.

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

    var currentBadgeNumber: Int = application.applicationIconBadgeNumber
    currentBadgeNumber += Int(userInfo["badge"] as? String ?? "0")!
    application.applicationIconBadgeNumber = currentBadgeNumber
    completionHandler(UIBackgroundFetchResult.noData)
}

например полезную нагрузку, см. старый ответ в СО.

Примечание: didReceiveRemoteNotification устарело с iOS10 + и выше, см. Это для пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...