2013-08-05 8 views
11

Chcę wyczyścić wszystkie powiadomienia push o mojej aplikacji, gdy użytkownik wybierze jedno z powiadomień wypychanych.Wyczyść Powiadomienia push z centrum powiadomień po wybraniu

Widziałem tu inne wątki, które mówią, że nie jest to możliwe w systemie iOS. , ale mam jedną aplikację pobraną ze sklepu z aplikacjami, co robi to samo.

+1

Możesz rozważyć opublikowanie dodatkowych informacji na temat aplikacji z tą funkcją. – rjstelling

+0

A także linki tam, gdzie było to niemożliwe. W ten sposób Twoje pytanie byłoby bardziej informacyjne – Tala

+2

wystarczy ustawić znaczek aplikacji jako 0. wyczyści wszystkie powiadomienia z centrum powiadomień –

Odpowiedz

28

Jeśli jest to lokalny powiadomienia następnie usunąć ikonę odznakę trzeba to zrobić jak ten

UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
localNotification.applicationIconBadgeNumber = 1; 

Jeśli jest zgłoszenie popychają można to zrobić za pomocą kodu napisane poniżej

[UIApplication sharedApplication].applicationIconBadgeNumber=0; 

Możesz wywoływać te metody w dowolnym miejscu. Na przykład, jeśli chcesz, aby usunąć powiadomienie w momencie, gdy aplikacja jest uruchomiona, a następnie zapisać go w

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

jeśli aplikacja nie używa numer karty identyfikacyjnej masz do pierwszego zestawu, a następnie przywrócić to, aby usunąć go z centrum powiadomień.

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
+1

Dzięki, ale już wspomniałem o tym jako powiadomienie push –

+0

Dodałem kod dla obu scenariuszy. użyj drugiego kodu do powiadomienia push –

+0

Próbowałem [UIApplication sharedApplication] .applicationIconBadgeNumber = 0; .... nie zadziałało dla mnie –

2

Wszystko, co musisz zrobić, to

application.applicationIconBadgeNumber = 0;

w

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

EDIT

Jeśli nie zamykając aplikacji, ale po prostu wysyłając go do tła. Następnie dodaj to również w swojej poniższej funkcji.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground ) 
    { 
     //opened from a push notification when the app was on background 
     application.applicationIconBadgeNumber = 0; 
    } 
} 
+1

Tak, to co powiedziałem .. i jeśli twoja aplikacja jest w tle, to sprawdź tę delegowaną metodę - (void) application: (UIApplication *) application didReceiveRemoteNotification: (NSDictionary *) userInfo { } –

+0

Zgodnie z moim rozumieniem application.applicationIconBadgeNumber = 0; zresetuje ikonę znaczka, a nie powiadomienia w centrum powiadomień. Próbowałem, ale nie zadziałało. –

+0

No cóż. Tutaj powiadomienie zostało usunięte z centrum powiadomień za każdym razem, gdy otwieram konkretną aplikację z powiadomieniem. –

Powiązane problemy