当点击一个时,所有已发送的计划通知都会从通知中心清除
All delivered Scheduled Notifications are cleared from Notification Center when one is tapped
我为用户安排了多个本地通知。所有这些也都在指定时间交付。但是,当我尝试从通知中心打开其中任何一个时,所有这些都被清除了。
在合理的情况下,我不希望所有通知中心都被清除,只有被点击的才会被打开。
此外,我尝试对 AppDelegate.m 中的代码进行评论,但问题仍然存在。 [[UIApplicationsharedApplication]setApplicationIconBadgeNumber:0];
任何人都可以告诉我这可能是什么问题,因为即使我点击只打开其中一个,我的预定通知也会从通知中心清除?
下面是我用来安排本地通知的代码 -
NSDateComponents *components = [SSUtility hoursMinuteAndSectionsForDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSLog(@"Hour %ld Min %ld ", hour,minute);
UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES];
/* Set notification */
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = body;
// content.categoryIdentifier=NSNotificationC;
content.sound = [UNNotificationSound defaultSound];
content.userInfo = userInfo;
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
content:content
trigger:trigger];
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
SSLOG(@"Something went wrong: %@",error);
}
}];
所以我不相信这是默认行为所以我发现:
- 如果您使用
UNCalendarNotificationTrigger
,则所有发送的提醒都会在点击时删除
- 如果您使用
UNTimeIntervalNotificationTrigger
,则发送的提醒会保留在通知中心
所以尝试使用 UNTimeIntervalNotificationTrigger
而不是 UNCalendarNotificationTrigger
NSTimeInterval timeInterval = [fireDate timeIntervalSinceDate:[NSDate date]];
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:timeInterval repeats:NO];
在我的例子中,添加一些文本到 content.body
解决问题:
content.body = 'Any text'
我为用户安排了多个本地通知。所有这些也都在指定时间交付。但是,当我尝试从通知中心打开其中任何一个时,所有这些都被清除了。
在合理的情况下,我不希望所有通知中心都被清除,只有被点击的才会被打开。
此外,我尝试对 AppDelegate.m 中的代码进行评论,但问题仍然存在。 [[UIApplicationsharedApplication]setApplicationIconBadgeNumber:0];
任何人都可以告诉我这可能是什么问题,因为即使我点击只打开其中一个,我的预定通知也会从通知中心清除?
下面是我用来安排本地通知的代码 -
NSDateComponents *components = [SSUtility hoursMinuteAndSectionsForDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSLog(@"Hour %ld Min %ld ", hour,minute);
UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES];
/* Set notification */
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = body;
// content.categoryIdentifier=NSNotificationC;
content.sound = [UNNotificationSound defaultSound];
content.userInfo = userInfo;
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
content:content
trigger:trigger];
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
SSLOG(@"Something went wrong: %@",error);
}
}];
所以我不相信这是默认行为所以我发现:
- 如果您使用
UNCalendarNotificationTrigger
,则所有发送的提醒都会在点击时删除 - 如果您使用
UNTimeIntervalNotificationTrigger
,则发送的提醒会保留在通知中心
所以尝试使用 UNTimeIntervalNotificationTrigger
而不是 UNCalendarNotificationTrigger
NSTimeInterval timeInterval = [fireDate timeIntervalSinceDate:[NSDate date]];
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:timeInterval repeats:NO];
在我的例子中,添加一些文本到 content.body
解决问题:
content.body = 'Any text'