2011-11-21 42 views
9

點擊後有沒有辦法處理來自通知中心的推送通知,並在我的應用程序啓動後將其刪除?如何在瀏覽後刪除通知中心的推送通知

+0

同樣在這裏 - 出於某種原因 - 我看到他們像未讀電子郵件一樣呆在那裏......我看到他們有一些到期時間或某些事情 - 我會假設也許一天左右...如果我找到我要更新的內容它在這裏......但如果你發現任何東西讓我知道... – vivianaranha

+0

你找到了解決方案嗎? – dhrm

+0

對不起@DennisMadsen,還沒有找到它。無論如何,很多應用程序有這種行爲,他們不會馬上被刪除,當查看 – bluezald

回答

6

我知道這是黑客和斜槓,但您可以通過更改您的應用程序上的徽章號碼來清除所有通知。

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

如果你已經有了你不想失去徽章數量,你可以這樣做

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

(例如將最終只是明確徽章號以上),這可能不是最佳實踐,但它完成了工作,客戶不會知道其中的差異。我喜歡稱它爲臨時。修復,直到我偶然找到更好的解決方案。希望這可以幫助別人!

+0

沒有爲我工作 –

+1

我不得不添加[[UIApplication sharedApplication] cancelAllLocalNotifications];讓它起作用。 –

+0

與徽章欺騙不起作用。 – Pavel