У мене є програма для iOS, куди надсилаються деякі повідомлення Push Notification. Моя проблема полягає в тому, що після цього повідомлення / сповіщення залишаються в Центрі сповіщень в 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