iOS:如何删除已推送的本地通知?

时间:2016-01-13 07:32:01

标签: ios apple-push-notifications

我有一些重复的可操作通知,当我点击某些通知按钮时 (I mean this),我必须删除所有相同的通知。例如,我已经推送了4个通知:

Not 1
Not 2
Not 1
Not 2

如果我使用“Not 1”的动作,我需要删除所有“Not 1”,所以,它会是这样的

Not 2
Not 2

我可以这样做吗?

[UIApplication sharedApplication].scheduledLocalNotifications]

只给我预定的通知,但我需要删除已显示的通知,这个数组中没有。

1 个答案:

答案 0 :(得分:0)

您可以在本地通知的userinfo中为密钥保存唯一值。获取所有本地通知,遍历数组并删除特定通知。

代码如下,

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;
    NSString *uid=[NSString stringWithFormat:@"%@",[userInfoCurrent valueForKey:@"uid"]];
    if ([uid isEqualToString:uidtodelete])
    {
        //Cancelling local notification
        [app cancelLocalNotification:oneEvent];
        break;
    }
}