Номер значка push-уведомления Apple

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

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

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


person Amit    schedule 21.06.2011    source источник


Ответы (2)


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

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]


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

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

person Felipe Sabino    schedule 21.06.2011

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

    - (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
    );
person Anit Kumar    schedule 08.01.2016