Номер значка push-уведомления Apple - PullRequest
9 голосов
/ 21 июня 2011

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

Но есть некоторая проблема с отображением значка, фактический сценарий - после получения нового уведомления на устройстве, я нажимаю кнопку отмены, после чего номер значка отображается правильно, но после этого я открою приложение и закрою значок приложения удалить. Это означает, что я не отправляю запрос на сервер, чтобы уведомление было просмотрено мной, и теперь вы можете уменьшить значок на единицу. Затем также значок удаляется из значка приложения.

У меня вопрос: когда мы открываем приложение, номер значка автоматически удаляется с устройства (приложения)? или покажет как есть, пока мы не установим на ноль?

Ответы [ 2 ]

13 голосов
/ 21 июня 2011

Будет отображаться, пока вы не установите его на ноль, и вы можете сделать это с помощью следующего кода:

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]


РЕДАКТИРОВАТЬ:
Как правило, номер значка устанавливается при получении уведомления в виде application:didReceiveRemoteNotification: или application:didFinishLaunchingWithOptions: вашего класса UIApplicationDelegate.

Подробнее об этом можно прочитать в Руководство по программированию локальных и push-уведомлений

0 голосов
/ 08 января 2016

Если вы хотите изменить значок значка автоматически, используйте следующий код.

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

    application.applicationIconBadgeNumber = 0;
    NSLog(@"userInfo %@",userInfo);

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]];

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]);

}

Нам также нужно изменить файл php.Таким образом, мы можем получить изменение значка значка автоматически

// Create the payload body
$body['aps'] = array(
    'alert' => $message,
    'sound' => 'default',
    'id' => '135',
    'badge' => 8
    );
...