2017-01-23 3 views
0

Я пытаюсь обновить значение значка удаленно с помощью push-уведомления. Все работает нормально, но когда приложение открыто, я получаю пустое предупреждение (содержащее имя моего приложения и кнопку закрытия).Обновление значка без предупреждения, когда приложение открыто

Я прочитал около silent notifications в документации Apple, но кажется, что даже при указании содержимого-доступного: 1 в полезной нагрузке уведомления полезная нагрузка не должна содержать знака для того, чтобы уведомление было тихим.

Обновляется значок без предупреждения?

ответ

0

Если вы используете тихое push-уведомление, то вы не можете включить ключ badge в словарь aps, так что вы не можете обновлять значок напрямую с помощью бесшумного нажатия.

Вы можете включать свои собственные ключи и значения в aps словаре и этот словарь доступен в функции didReceiveRemoteNotification:fetchCompletionHandlerUIApplicationDelegate.

В этой функции вы можете извлечь свой собственный ключ «значок» из aps словаря и использовать это, чтобы обновить номер жетона непосредственно с помощью UIApplication свойства [applicationIconBadgeNumber] [1]

UIApplication.shared.applicationIconBadgeNumber = someValue 

Что-то вроде:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { 
    if let badgeNumberStr = userInfo["myBadge"] as? String { 
     if let badgeNumber = Int(badgeNumberStr) { 
      application.applicationIconBadgeNumber = badgeNumber 
     } 
    } 
} 
+0

Да, но мне также нужен значок, чтобы обновить его значение при выполнении действия на стороне сервера. – pepollet

+0

Извините. Я неправильно понял. См. Мое обновление – Paulw11

+0

Спасибо, я понимаю это решение и, возможно, воспользуюсь этим. Чтобы уточнить поведение по умолчанию ios, если значение значка установлено в словаре aps, будет показано предупреждение независимо от того, когда приложение открыто? – pepollet

Смежные вопросы