从通知中心删除抽头通知

时间:2013-06-02 16:37:01

标签: ios notifications apple-push-notifications

可能是。的重复链接。

Remove single remote notification from Notification Center

根据这篇文章,我们无法从通知中心(NC)删除单个通知。 对于取消通知,我们有以下方法。

1).cancelAllLocalNotifications:删除所有通知。 2).cancelLocalNotification:它需要通知作为输入。

我尝试了两种方法,首先使用它删除NC的所有通知,第二种方法似乎不起作用。 这是我在didRecivedRemoteNoitification方法上应用的第二个片段。

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;
    }
}

所以我的问题是我看到几个应用程序从NC中删除了一个通知,例如skype

是否有一些我不想申请的东西。

感谢您宝贵的时间。

1 个答案:

答案 0 :(得分: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....

}