ios 11.2.1通知被清除

时间:2017-12-26 05:14:38

标签: ios objective-c notifications ios11.2

我开发了一款很大程度上取决于本地通知的应用。自升级到ios 11.2.1以来,行为发生了变化而我的代码没有任何变化。

在之前的版本中,直到11.2.0,如果来自通知中心的同一个应用程序有多个通知,其中一个已被回答,则通知中心内的所有其他通知仍然存在(除非通过应用程序内的代码清除)。

升级到11.2.1后,每次收到通知时,所有其他通知也会被删除。我在模拟器和iPhone 6上的多个设备上进行了测试。这也适用于其他应用,如消息或线路,因此,它不仅限于本地通知。

这是ios 11.2.1中的错误还是预期的通知新行为? 在任何一种情况下,有没有办法让通知以与以前相同的方式工作?

以下是处理答案的相关代码

- (void)removeNotificationWithIdentifier:(NSString *)identifier {
    NSMutableDictionary *notifications = [self getAllNotifications];
    NSMutableDictionary *categories = [self getAllCategories];
    UNNotificationContent *content = [notifications objectForKey:identifier];
    NSString *category = [content.userInfo objectForKey:@"category"];

    [notifications removeObjectForKey:identifier];

    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    [center removePendingNotificationRequestsWithIdentifiers:[NSArray arrayWithObjects:identifier, nil]];
    [center removeDeliveredNotificationsWithIdentifiers:[NSArray arrayWithObjects:identifier, nil]];

    if (category != nil) {
        [categories removeObjectForKey:category];
    }

    [self saveAllNotifications:notifications];
    [self saveAllCategories:categories];
}

0 个答案:

没有答案