可能是。的重复链接。
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
是否有一些我不想申请的东西。
感谢您宝贵的时间。
答案 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....
}