2011-06-21 213 views
7

我開發了服務器端應用程序,以便在收到新通知後將徽章號碼保持爲遞增或遞減,並在看到通知正常工作後刪除。Apple推送通知徽章號碼

但是在顯示徽章時存在一些問題,實際情況是 - 在設備上獲得新通知後,我點擊取消按鈕,然後徽章號碼顯示正確,但此後我將打開應用程序並關閉應用程序徽章將被刪除。這意味着我不會向服務器發送通知被我看到的請求,現在您可以將徽章減1。然後還從應用圖標中移除徽章。

我的問題是,當我們打開應用程序,然後徽章號碼自動從(應用程序)設備中刪除?或者它會顯示,直到我們設置爲零?

回答

12

它會顯示,直到你把它設置成零,你可以用下面的代碼做到這一點:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0] 


編輯:
這是比較常見的,你收到通知設置的徽章數量,application:didReceiveRemoteNotification:application:didFinishLaunchingWithOptions:您的UIApplicationDelegate類的方法。

如果要更改圖標徽章自動使用下面的代碼,你可以閱讀在Local and Push Notification Programming Guide

0

更多地瞭解它。

- (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]); 

} 

我們還需要更改php文件。所以我們可以自動更換圖標徽章

// Create the payload body 
$body['aps'] = array(
    'alert' => $message, 
    'sound' => 'default', 
    'id' => '135', 
    'badge' => 8 
    );