Удалить одно удаленное уведомление из Центра уведомлений - PullRequest
25 голосов
/ 29 марта 2012

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

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

Спасибо!

Ответы [ 3 ]

27 голосов
/ 13 мая 2012

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

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

РЕДАКТИРОВАТЬ: на iOS 8 SpringBoard, похоже, автоматически отклоняет уведомление, когда вы нажимаете на него в Центре уведомлений, чтобы открыть приложение.

8 голосов
/ 26 января 2015

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

  • Push-уведомление без вывода сообщений (contentAvailable: true), не включайте «предупреждение»«внутри push, поместите текст предупреждения в пользовательское свойство push
  • . Обрабатывайте входящий push и запускайте локальное уведомление, немедленно отображайте его
  • . Если пользователь щелкает локальное уведомление, используйте[UIApplication cancelLocalNotification:], которое должно удалить уведомление из центра уведомлений.
2 голосов
/ 10 мая 2013

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

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

и

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

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

...