2011-11-21 12 views
9

タップした後に通知センターからプッシュ通知を処理する方法はありますか?アプリケーションが既に起動しているときにプッシュ通知を削除する方法はありますか?表示後に通知センターでプッシュ通知を削除する方法

+0

同じです - 何らかの理由で - 私は未読メールのようにそこにとどまるのを見ました...彼らはある程度の有効期限があることを見ました - 私は1日かそれ以上と考えています...それはここに...しかし、何かがわかったら私に知らせてください... – 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