2011-06-21 18 views
7

Ben yeni bir bildirim aldıktan sonra, artma veya azalma olarak rozet sayısını korumak ve iyi çalışıyor bildirimi gördükten sonra silmek için sunucu tarafı uygulamasını geliştirdik.Elma push bildirim rozet numarası

Ancak rozeti göstermede bir sorun var, asıl senaryo - Cihazda yeni bir bildirim aldıktan sonra, iptal düğmesine tıklıyorum ve rozet numarası doğru şekilde gösteriliyor ancak bundan sonra uygulamayı açacağım ve uygulama rozeti kapatacağım kaldırılacak. Bu, bildirimin benim tarafımdan görüldüğü sunucuya istek göndermediğim anlamına geliyor ve şimdi rozeti birer birer azaltabilirsiniz. Daha sonra rozet, uygulama simgesinden kaldırıldı.

Sorum o zaman rozet numarasını uygulamasını açtığınızda otomatik olarak (uygulama) cihazdan çıkarılmış olmasıdır? ya da sıfıra ayarlanıncaya kadar gösterecek?

cevap

12

sıfıra ayarlayın ve aşağıdaki kodla yapabilirsiniz gelene kadar gösterecektir:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0] 


DÜZENLEME:
bildirim almak olarak rozet sayısını ayarlamak için daha yaygındır senin UIApplicationDelegate sınıfın ya application:didReceiveRemoteNotification: veya application:didFinishLaunchingWithOptions: yöntemlerde. Eğer simge rozeti otomatik olarak aşağıdaki kodu kullanabilirsiniz değiştirmek istiyorsanız

Sen Local and Push Notification Programming Guide

0

bu konuda daha fazla bilgi bulabilirsiniz.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 

    application.applicationIconBadgeNumber = 0; 
    NSLog(@"userInfo %@",userInfo); 

    for (id key in userInfo) { 
     NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]); 
    } 

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]]; 

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]); 

} 

Ayrıca, php dosyasını da değiştirmemiz gerekiyor. Bu yüzden otomatik simgesi rozeti

// Create the payload body 
$body['aps'] = array(
    'alert' => $message, 
    'sound' => 'default', 
    'id' => '135', 
    'badge' => 8 
    ); 
değişiklik alabilirsiniz
İlgili konular