我似乎无法找到它并且我不确定如何Google。在我的应用程序中,我使用后台提取进行检查,如果有新数据,我会使用UILocalNotification
向用户发送通知。现在如何阻止应用向用户发送新通知(如果已存在)?当我不看电话几个小时后,我现在收到5条相同的通知。
谢谢!
答案 0 :(得分:1)
您可以使用UIApplication的属性scheduledLocalNotifications
以下是示例代码:
NSMutableArray *notifications = [[NSMutableArray alloc] init]; [notifications addObject:notification]; myApp.scheduledLocalNotifications = notifications;
//Equivalent: [myApp setScheduledLocalNotifications:notifications];
UIApplication *myApp = [UIApplication sharedApplication];
NSArray *eventArray = [myApp 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
[myApp cancelLocalNotification:oneEvent];
break;
}
}
NSArray *arrayOfLocalNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications] ;
for (UILocalNotification *localNotification in arrayOfLocalNotifications) {
if ([localNotification.alertBody isEqualToString:savedTitle]) {
NSLog(@"the notification this is canceld is %@", localNotification.alertBody);
[[UIApplication sharedApplication] cancelLocalNotification:localNotification] ; // delete the notification from the system
}
}
希望这有助于找出解决方案。
答案 1 :(得分:0)
避免首先取消它的最好方法也就是不发送它。 找到一种方法来了解用户之前是否已收到通知,如果有,则不要再次通知:) 这是更清洁,更有效,将永远持续,并且永远不会适得其反。
此外,这回答了您的问题&#34;没有再次发送通知&#34;而不是发送它并在之后取消,如果你考虑它不是一个好主意。