我可以不显示 UILocalNotification 吗?
Can I not show an UILocalNotification?
我有一个 objective c 应用程序。我在一个时间间隔内显示 UILocalNotifications。但随后添加了这个,我不想显示确定的通知。
例如,我在通知中添加了一个键和值,如果在 didReceiveLocalNotification 函数中收到的通知有 key=2 我想显示,但如果通知有 key=1 我不想显示。
这可能吗?
我正在尝试使用这段代码,但总是显示所有通知:
UILocalNotification *notification = [[UILocalNotification alloc] init];
//notification.fireDate = [[NSDate date] dateByAddingTimeInterval:1];
notification.alertBody = @"Hello!";
notification.soundName = @"Alarm-Clock.caf";
NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"key1", @"1", nil];
notification.userInfo = infoDict;
notification.repeatInterval = NSCalendarUnitMinute;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
if([[notification.userInfo valueForKey:@"1"] isEqual:@"key1"]){
[[UIApplication sharedApplication] cancelLocalNotification:notification];
}
您可能想要使用以下内容,但您需要在触发 UILocationNotification 之前执行此操作,而不是之后。
for (UILocalNotification *localNotification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if ([[localNotification.userInfo valueForKey:@"1"] isEqual:@"key1"]) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification];
}
}
希望对您有所帮助。
干杯。
我有一个 objective c 应用程序。我在一个时间间隔内显示 UILocalNotifications。但随后添加了这个,我不想显示确定的通知。
例如,我在通知中添加了一个键和值,如果在 didReceiveLocalNotification 函数中收到的通知有 key=2 我想显示,但如果通知有 key=1 我不想显示。
这可能吗?
我正在尝试使用这段代码,但总是显示所有通知:
UILocalNotification *notification = [[UILocalNotification alloc] init];
//notification.fireDate = [[NSDate date] dateByAddingTimeInterval:1];
notification.alertBody = @"Hello!";
notification.soundName = @"Alarm-Clock.caf";
NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"key1", @"1", nil];
notification.userInfo = infoDict;
notification.repeatInterval = NSCalendarUnitMinute;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
if([[notification.userInfo valueForKey:@"1"] isEqual:@"key1"]){
[[UIApplication sharedApplication] cancelLocalNotification:notification];
}
您可能想要使用以下内容,但您需要在触发 UILocationNotification 之前执行此操作,而不是之后。
for (UILocalNotification *localNotification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if ([[localNotification.userInfo valueForKey:@"1"] isEqual:@"key1"]) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification];
}
}
希望对您有所帮助。
干杯。