Удаление единого удаленного уведомления из Центра уведомлений
мое приложение получает удаленное уведомление с сервера Apple.
Есть ли способ удалить одно удаленное уведомление из центра уведомлений (раскрывающееся меню, доступное из iOs 5.0+), когда пользователь нажимает на него?
![enter image description here]()
Спасибо!
Ответы
Ответ 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-уведомления будут удалены для конкретного приложения.