Подтвердить что ты не робот

Удаление единого удаленного уведомления из Центра уведомлений

мое приложение получает удаленное уведомление с сервера Apple.

Есть ли способ удалить одно удаленное уведомление из центра уведомлений (раскрывающееся меню, доступное из iOs 5.0+), когда пользователь нажимает на него?

enter image description here

Спасибо!

4b9b3361

Ответ 1

Невозможно удалить конкретное уведомление с IOS SDK 5.0. Чтобы удалить все уведомления из вашего приложения, чтобы они не отображались в Центре уведомлений, когда пользователь открывает приложение из одного из них, необходимо установить значок приложения на 0, например:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

EDIT: на iOS 8 SpringBoard автоматически отключает уведомление, когда вы нажимаете на него в Центре уведомлений, чтобы открыть приложение.

Ответ 2

Вот предложение, хотя оно имеет свои недостатки, и я сам не пробовал:

  • Нажмите молчащее уведомление (contentAvailable: true), не включайте "предупреждение" внутри push, поместите текст предупреждения в пользовательское свойство push
  • Управление входящим нажатием и запуск локального уведомления, немедленное отображение его
  • Если пользователь нажимает локальное уведомление, используйте [UIApplication cancelLocalNotification:], который должен удалить уведомление из центра уведомлений.

Ответ 3

Когда вы вызываете метод: [application cancelAllLocalNotifications]; внутри методов AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

и

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

Все локальные и Push-уведомления будут удалены для конкретного приложения.