1

の重複リンクの可能性があります。

通知センターから単一のリモート通知を削除する

この投稿によると、通知センター (NC) から単一の通知を削除することはできません。通知をキャンセルするには、以下の方法があります。

1).cancelAllLocalNotifications : すべての通知を削除します。2).cancelLocalNotification : 入力として通知が必要です。

最初の方法を使用すると、NC からすべての通知が削除され、2 番目の方法は機能しないようです。これは、didRecivedRemoteNoitification メソッドに適用する 2 番目のスニペットです。

UIApplication *app = [UIApplication sharedApplication];
NSArray *eventArray = [app scheduledLocalNotifications];
for (int i=0; i<[eventArray count]; i++)
{
    UILocalNotification* oneEvent = [eventArray objectAtIndex:i];
    NSDictionary *userInfoCurrent = oneEvent.userInfo;
    NSLog(@"userInfoCurrent : %@", userInfoCurrent);
    int notiid=[[userInfoCurrent valueForKey:@"notificationID"] intValue];
    if (notiid ==deletenotiid)
    {
        //Cancelling local notification
        [app cancelLocalNotification:oneEvent];
        break;
    }
}

だから私の質問は、Skype などの NC からタップされた 1 つの通知を削除するいくつかのアプリケーションを見ていることです。

適用するのに欠けているものはありますか。

貴重な時間をありがとう。

4

1 に答える 1

0

あなたは上記のコードを に含めたと書いていますdidRecivedRemoteNoitification。ただし、didRecivedRemoteNoitificationアプリがフォアグラウンドで実行されているときにプッシュ通知が届いた場合にのみ呼び出されます。この場合、通知は表示されず、クリアするものはありません。

アプリが実行されていないときに届く通知の場合、ユーザーが通知をタップすると、通知データが に渡されapplication:didFinishLaunchingWithOptions:ます。バッジ番号を消せばタップした通知も消えると思います。

- (void)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)opts {

    // check launchOptions for notification payload and custom data, set UI context

    [self startDownloadingDataFromProvider];  // custom method

    app.applicationIconBadgeNumber = 0;

    // other setup tasks here....

}
于 2013-06-02T18:08:29.683 に答える