Mam aplikację na iOS, do której wysyłane są powiadomienia push. Mój problem polega na tym, że wiadomości / powiadomienia pozostają w Centrum powiadomień w iOS po dotknięciu. Jak mogę usunąć powiadomienie o mojej aplikacji w Centrum powiadomień przy następnym uruchomieniu aplikacji?
Natknąłem się na posty, w których ludzie dzwonią setApplicationIconBadgeNumber
do wartości zerowej, aby wyczyścić powiadomienia. Wydaje mi się to bardzo dziwne, więc wierzę, że może istnieje inne rozwiązanie?
EDYCJA1:
Mam problemy z wyczyszczeniem powiadomień. Zobacz mój kod tutaj:
- (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];
}
Uruchamiam aplikację przez Xcode. Kiedy aplikacja jest zminimalizowana i uruchamiam ją za pomocą powiadomienia w Centrum powiadomień, widzę w dzienniku, że didReceiveRemoteNotification
jest wywoływana i używając punktów przerwania, które widzę, że clearNotifications
została uruchomiona. Ale nadal powiadomienie zawiesza się w Centrum powiadomień. Czemu?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650