отключить получение push от didReceive в NotificationService - PullRequest
0 голосов
/ 12 мая 2019

Я хочу отключить отправку push-уведомлений пользователю при особых условиях. Я сохранил свой первый Push в userDefault, а во втором проверяю, тот ли это. когда я отлаживаю его, войдите, чтобы вернуться и не продолжать, но все равно я получаю push-уведомление. пуш, отправленный с firebase api

 override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {

    if let dict = request.content.userInfo["aps"] as? Dictionary<AnyHashable, AnyHashable> {
        if let did = dict["did"] as? String {
            if let message = dict["message"] as? String {
                let currentPush = did + "_" + message

                if let lastPush = UserDefaults.standard.string(forKey: "lastPush"), currentPush == lastPush {
                    print("enter")
                    return
                }
                else {
                    UserDefaults.standard.setValue(currentPush, forKey: "lastPush")
                }
            }
        }
    }}

1 Ответ

1 голос
/ 12 мая 2019

В отличие от Android, где у разработчика есть некоторый контроль показывать уведомление или нет, iOS не предоставляет такую ​​возможность.Отправленное уведомление всегда будет отображаться.Итак, ваш return не будет работать.

Один из способов обойти это - отправить тихое push-уведомление , обработать данные и, если это соответствует вашей логике, затем создатьлокальное уведомление и покажи это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...