Приложение iOS: как очистить уведомления?

У меня есть приложение iOS, на которое отправляются некоторые Push-уведомления. Моя проблема в том, что сообщения/уведомления остаются в Центре уведомлений в iOS после нажатия на них. Как я могу удалить уведомление для моего приложения в Центре уведомлений при следующем открытии приложения?

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

EDIT1:

У меня возникли некоторые проблемы с очисткой уведомлений. Пожалуйста, посмотрите мой код здесь:

- (void) clearNotifications {
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if (launchOptions != nil)
    {
        NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (dictionary != nil)
        {
            NSLog(@"Launched from push notification: %@", dictionary);

            [self clearNotifications];
        }
    }

    return YES;
}

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{    
    NSLog(@"Received notification: %@", userInfo);
    [self clearNotifications];
}

Я запускаю приложение через Xcode. Когда приложение сворачивается и я запускаю приложение, используя уведомление в Центре уведомлений, я вижу в журнале, что didReceiveRemoteNotification вызывается и, используя точки останова, я вижу, что clearNotifications выполняется. Но уведомление по-прежнему висит в Центре уведомлений. Почему?

109
задан John Topley 29 July 2014 в 08:30
поделиться