Может ли обработчик не показывать удаленное уведомление, когда приложение iOS убито? - PullRequest
0 голосов
/ 14 января 2020

Мое требование - запретить отображение удаленных уведомлений.
Я могу обработать это, если приложение находится на переднем или заднем плане следующими способами:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
        //logic hide notification here
    }
public func userNotificationCenter(_ center: UNUserNotificationCenter,
                                       willPresent notification: UNNotification,
                                       withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        //logic hide notification here
    }

Когда приложение закрывается, я пытаюсь обработать логи c в UNNotificationServiceExtension , но оно не работает:

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        // logic hide notification here
    }

Я читал эту статью: Это Можно ли предотвратить отображение удаленного уведомления? В нем сказано, что Apple не разрешает делать это, это правильно?

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Вы пытаетесь полностью удалить уведомления? . ты не должен справляться с этим сам.

0 голосов
/ 14 января 2020

Да, это правильно.

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

Другой способ отправлять уведомления и не показывать их - отправлять «тихие уведомления». Он позволяет вам получать уведомления, получать их содержимое и делать то, что вы хотите (у вас есть только 30 с). Я думаю, вы можете отправлять уведомления без уведомления, проверять содержимое и отправлять локальное уведомление, если это необходимо, но я не уверен.

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