У меня есть приложение для 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
он был запущен. Но все равно в Центре уведомлений висит уведомление. Зачем?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650