2011-11-21 16 views
9

C'è un modo per gestire la notifica push dal Centro notifiche dopo essere stata toccata e rimuoverla quando la mia applicazione è già stata avviata?Come rimuovere la notifica push nel Centro di notifica dopo aver visto

+0

Stessa cosa - Per qualche ragione - vedo che restano lì come e-mail non lette ... Ho visto che hanno un po 'di tempo di scadenza o qualcosa del genere - presumo forse un giorno o così ... se trovo qualcosa che aggiornerò è qui ... ma se trovi qualcosa fammelo sapere ... – vivianaranha

+0

Hai trovato una soluzione? – dhrm

+0

scusate @DennisMadsen, non l'ho ancora trovato. comunque molte app hanno questo comportamento, non saranno rimosse immediatamente se visualizzate – bluezald

risposta

6

So che questo è un hack e una barra, ma è possibile cancellare tutte le notifiche di cambiando il numero del badge sulla propria applicazione.

- (void)application:(UIApplication*)application didReceiveRemoteNotification (NSDictionary*)payload 
{ 
    NSLog(@"Received notification: %@", payload); 
    //swapping between two badge numbers to clear notifications 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
    ... 
} 

Se hai già avuto un numero distintivo non si vuole perdere (sopra esempio sarà il numero distintivo semplicemente chiaro alla fine) si può fare qualcosa di simile

- (void)application:(UIApplication*)application didReceiveRemoteNotification (NSDictionary*)payload 
{ 
    NSLog(@"Received notification: %@", payload); 
    /* 
    storing current badge number then swapping between 2 values to make sure we 
    clear the badge number. Once this is done set badge number back to original 
    value. 
    */ 
    int badgeNum = [[UIApplication sharedApplication] applicationIconBadgeNumber] 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeNum]; 
    ... 
} 

Questo non può essere migliore pratica, ma ottiene il lavoro fatto e il cliente non conoscerà la differenza. Mi piace definirlo un temp. aggiusto finché non inciampo su una soluzione migliore. Spero che questo aiuti qualcuno!

+0

non ha funzionato per me –

+1

Ho dovuto aggiungere [[UIApplication sharedApplication] cancelAllLocalNotifications]; per farlo funzionare. –

+0

Il trucco con il badge non funziona. – Pavel

Problemi correlati