Можем ли мы избежать отображения push-уведомлений

Существует сценарий, в котором мне нужно проверить, должен ли пользователь получать push-уведомления в зависимости от его местоположения. Я знаю что UNNotificationServiceExtension помогает нам перехватить уведомление и вносит вклад в создание push-контента. Но возможно ли для этого класса или для чего-либо еще, что мы не отображаем push-уведомление, проверяя местоположение пользователя?

Это не значит, что я хочу делать это каждый раз. Но только когда мое условие не выполнено. В содержании уведомления я получаю последнее отслеживаемое местоположение пользователя, которое я буду использовать для сравнения с текущим местоположением пользователя.
Я прошел через это, но не получил убедительного ответа.
Примечание: я не ищу решение для тихого push-уведомления.

1 ответ

Используя UNUserNotificationCenter, вы можете отменить одно уведомление по идентификатору.

UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: [SomeID])

Вам нужно будет реализовать UNUserNotificationCenterDelegate и внедрить userNotificationCenter(_:willPresent)

Что-то вроде:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let identifier = notification.request.identifier
        let content = notification.request.content
        //your logic here
    }
Другие вопросы по тегам