Увеличить значок Push Push iPhone
Можно ли увеличить значение значка при получении уведомления. ИЛИ Должен ли я отправлять счет как полезную нагрузку?
Если я каждый раз отправляю значение значка как "1", как я могу увеличить значение значка в значке приложения, если приложение не открыто.
Я использовал этот код, но не работает.
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
}
Ответы
Ответ 1
Обычно во всех приложениях количество непрочитанных уведомлений поддерживается на сервере. Когда сервер отправляет push-уведомление на конкретный токен устройства, они отправляют счетчик значков вместе с полезной нагрузкой. Как только устройство будет уведомлено, а ваше приложение будет в фоновом режиме (или убито), ОС автоматически обновит счет значка до значка вашего приложения. Если у вас есть приложение, вы получите уведомление в
application:didReceiveRemoteNotification:
делегировать и, таким образом, вы можете получать счетчик значков из пользовательской информации (NSDictionary *). Таким образом, вы можете обновить значок значка значка приложения, используя функцию
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
Подумайте, это должно вам помочь.
Ответ 2
Если приложение не открыто, вы не сможете увеличить значок, за исключением полезной нагрузки.
Ответ 3
Когда появляется Push-сообщение, когда ваше приложение находится в фоновом режиме, и вы хотите увеличить номер значка, вы должны отправить badgeCount
на сервер, чтобы сервер знал текущий счет.
Если вы управляете счетчиком значков на стороне сервера, то этого кода достаточно: -
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSLog(@"remote notification: %@",[userInfo description]);
if (userInfo) {
NSLog(@"%@",userInfo);
if ([userInfo objectForKey:@"aps"]) {
if([[userInfo objectForKey:@"aps"] objectForKey:@"badgecount"]) {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
}
}
}
}
Ответ 4
Городской дирижабль поддерживает этот, используя свою функцию автообнаружения.
Ответ 5
После получения удаленного уведомления при открытии приложения
получить текущий номер значка в методе "didBecomeActive" вашего файла Appdelegate, используя следующий код:
int badgeCount = [UIApplication sharedApplication].applicationIconBadgeNumber;
badgeCount = badgeCount + 1;