2011-11-21 17 views
9

¿Hay alguna manera de manejar la notificación de inserción del Centro de notificaciones después de que se toque, y eliminarla cuando mi aplicación ya se haya lanzado?Cómo eliminar la notificación de inserción en el Centro de notificaciones después de ver

+0

Lo mismo aquí - Por alguna razón, los veo quedarme allí como correos electrónicos no leídos ... Vi que tienen un tiempo de caducidad o algo así - Supongo que tal vez un día más o menos ... si encuentro algo lo actualizaré aquí ... pero si encuentra algo, hágamelo saber ... – vivianaranha

+0

¿Encontró una solución? – dhrm

+0

lo siento @DennisMadsen, todavía no lo he encontrado. de todos modos, muchas aplicaciones tienen este comportamiento, no se eliminarán de inmediato cuando se ve – bluezald

Respuesta

6

Sé que esto es hack and slash, pero puede borrar todas las notificaciones por cambiando el número de placa en su aplicación.

- (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]; 
    ... 
} 

Si ya tenía un número de placa no quiere perder (el ejemplo anterior tendrá el número de placa simplemente claro en el final) se puede hacer algo como

- (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]; 
    ... 
} 

Esto puede no ser mejor práctica, pero hace el trabajo y el cliente no sabrá la diferencia. Me gusta llamarlo una temperatura. arreglarlo hasta que encuentre una mejor solución. ¡Espero que esto ayude a alguien!

+0

no funcionó para mí –

+1

Tuve que agregar [[UIApplication sharedApplication] cancelAllLocalNotifications]; para hacer que funcione –

+0

El truco con la insignia no funciona. – Pavel

Cuestiones relacionadas