在 iOS 11.2 中清除单个通知会清除所有通知
Clearing a single notification in iOS 11.2 clears them all
从 iOS 11.2 开始,从我的应用中清除单个通知似乎会清除所有通知。由于没有更改代码,我似乎无法弄清楚发生了什么。
我的 UNNotificationRequest
是使用 GUUID 创建的,因此具有普遍唯一性(因为我的应用允许用户根据相同的提醒类型创建多个提醒)。
我一定做错了什么?
UNMutableNotificationContent *alertContent = [[UNMutableNotificationContent alloc] init];
alertContent.categoryIdentifier = ALERT_CATEGORY_ALERTS;
alertContent.body = task.title;
alertContent.userInfo = ... a dictionary of stuff
...
NSDateComponents *dateCompos = [localGregCal components:NSCalendarUnitYear | NSCalendarUnitMonth
| NSCalendarUnitDay | NSCalendarUnitHour |
NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:deliveryDate];
UNCalendarNotificationTrigger *alertTrigger = [UNCalendarNotificationTrigger
triggerWithDateMatchingComponents:dateCompos repeats:NO];
UNNotificationRequest *notifRequest = [UNNotificationRequest requestWithIdentifier:NEW_GUUID
content:alertContent trigger:alertTrigger];
似乎是 iOS 11.2.0-.5 问题:
rdar://36575570: iOS 11.2.2: Clearing/Action on notification causes …
我也只在 iOS 11.2 上遇到过同样的问题,现在我已经将我的 OS 11.2 更新到 11.3。现在它对我来说很好用。
所以这是 OS 相关的错误,已在 iOS 11.3 中解决。
另一个cause/solution:
如果您在没有 alert
的静默通知到达时清除单个通知,请确保 aps.batch
未设置为 0。确保 aps.batch
未设置完全包含在您的消息中。
从 iOS 11.2 开始,从我的应用中清除单个通知似乎会清除所有通知。由于没有更改代码,我似乎无法弄清楚发生了什么。
我的 UNNotificationRequest
是使用 GUUID 创建的,因此具有普遍唯一性(因为我的应用允许用户根据相同的提醒类型创建多个提醒)。
我一定做错了什么?
UNMutableNotificationContent *alertContent = [[UNMutableNotificationContent alloc] init];
alertContent.categoryIdentifier = ALERT_CATEGORY_ALERTS;
alertContent.body = task.title;
alertContent.userInfo = ... a dictionary of stuff
...
NSDateComponents *dateCompos = [localGregCal components:NSCalendarUnitYear | NSCalendarUnitMonth
| NSCalendarUnitDay | NSCalendarUnitHour |
NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:deliveryDate];
UNCalendarNotificationTrigger *alertTrigger = [UNCalendarNotificationTrigger
triggerWithDateMatchingComponents:dateCompos repeats:NO];
UNNotificationRequest *notifRequest = [UNNotificationRequest requestWithIdentifier:NEW_GUUID
content:alertContent trigger:alertTrigger];
似乎是 iOS 11.2.0-.5 问题:
rdar://36575570: iOS 11.2.2: Clearing/Action on notification causes …
我也只在 iOS 11.2 上遇到过同样的问题,现在我已经将我的 OS 11.2 更新到 11.3。现在它对我来说很好用。
所以这是 OS 相关的错误,已在 iOS 11.3 中解决。
另一个cause/solution:
如果您在没有 alert
的静默通知到达时清除单个通知,请确保 aps.batch
未设置为 0。确保 aps.batch
未设置完全包含在您的消息中。