Обновить значок значка, когда приложение закрыто

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
       NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];

//Accept push notification when app is not open
    if (remoteNotif) {
      [application setApplicationIconBadgeNumber:100];
    return YES;
    }

}
    -(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {

            [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 30];

    }

3 ответа

Решение

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

{
    "aps" : {
        "alert" : "Your notification message",
        "badge" : 1
    }
}

Взгляните на руководство Apple по программированию Push-уведомлений

Для этого набора applicationIconBadgeNumber = 1 или же 0 в didFinishLaunchingWithOptions: метод, как ниже...

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

Смотрите другой ответ для UILocalNotification По этой ссылке /questions/37834625/obnovlenie-nomera-znachka-ios-v-rezhime-realnogo-vremeni

Также другая ссылка для RemoteNotifications от этой ссылки RemoteNotificationsPG Guide

Поскольку push-уведомления обрабатываются iOS, а не вашим приложением, вы не можете изменить значок приложения при получении push-уведомления.

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

Полезная нагрузка может выглядеть так:

    {
       "aps" : {
       "alert" : "You got your emails.",
       "badge" : 1
    }
  }

Теперь значок значка приложения будет отображаться 1.

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