Обновить значок значка, когда приложение закрыто
Я пытаюсь обновить значок значка для моего приложения (закрыт), когда я получил 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.