UNUserNotificationCenter removeAllDeliveredNotifications not working in ios 11.2

前端 未结 3 1914
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-19 00:13

I have an app with multiple local notifications. When I try to clear all the delivered notifications, I call this removeAllDeliveredNotifications method. It\'s

相关标签:
3条回答
  • 2020-12-19 00:37

    It is still working for us. I just checked it on iOS 11.2.2. I am using removeDeliveredNotificationsWithIdentifiers: inside getDeliveredNotificationsWithCompletionHandler:, calling getDeliveredNotificationsWithCompletionHandler on Main Thread.

    - (void)removePendingNotificationsForObjectID:(SJFObjectID *)objectID {
        __weak __typeof(self) weakSelf = self;
        [self.userNotificationCenter getDeliveredNotificationsWithCompletionHandler:^(NSArray<UNNotification *> *notifications) {
            __strong __typeof(weakSelf) self = weakSelf;
            NSMutableArray <NSString *> *identifiersToRemove = [@[] mutableCopy];
            for (UNNotification *notification in notifications) {
                SJFObjectID *objectIDFromNotification = [self.notificationToObjectIDMarshaller marshalNotification:notification];
                if ([objectID isEqual:objectIDFromNotification]) {
                    [identifiersToRemove addObject:notification.request.identifier];
                }
            }
            [self.userNotificationCenter removeDeliveredNotificationsWithIdentifiers:identifiersToRemove];
        }];
    }
    

    Though I experience strange behavior if I am debugging the completionHandler. If a pause too long (whatever that means) the completion handler will not finish (even on continue process execution) resulting in an unresponsive app. Maybe the completionhandler gets terminated.

    0 讨论(0)
  • 2020-12-19 00:56

    Did you try using this method:

    removeDeliveredNotifications(withIdentifiers:)

    You will need to pass an array of all the notification identifiers that you need to delete.

    0 讨论(0)
  • 2020-12-19 01:00

    This appears to be a bug in iOS that was fixed in iOS 11.3.

    0 讨论(0)
提交回复
热议问题