У меня довольно большой iOS-проект. Когда приложение получает уведомления, находясь на переднем плане, уведомление отображается в виде чего-то похожего на AlertView. Я хочу избавиться от этого. Я понятия не имею, это то, что я запрограммировал сам давно, или это делает одна из фреймворков в проекте (Parse, Onesignal, FBSDK). Мой вопрос в том, как мне узнать, откуда исходит это представление предупреждений, чтобы я мог удалить этот код. Я нигде не реализовал метод willPresentNotification (я просмотрел весь проект). У меня есть метод didReceiveRemoteNotification, и хотя он должен вызываться только при нажатии на уведомление, я попытался закомментировать его. Я также просмотрел весь проект в поисках UIAlertView и UIAlertController, но безрезультатно.

1
Daniel Hjertholm 11 Мар 2018 в 15:29

1 ответ

Лучший ответ

OneSignal SDK автоматически использует новый UserNotifications Framework при обнаружении iOS10 на устройстве.

В этом случае метод метода AppDelegate didReceiveRemoteNotification не вызывается, вместо этого вызываются методы в UNUserNotificationCenterDelegate, что фиксируется SDK для записи кликов / просмотров.

OneSignal использует обратный вызов для обработки полученного уведомления.

  • OSHandleNotificationReceivedBlock: вызывается, когда приложение получает уведомление только в фокусе

  • OSHandleNotificationActionBlock: вызывается, когда пользователь открывает или нажимает действие в уведомлении.

  • OSNotificationOpenedResult: информация, возвращенная из уведомления, полученного пользователем.

Вы можете напрямую реализовать методы UNUserNotificationCenterDelegate для обработки взаимодействий, связанных с уведомлениями, в вашем приложение.

2
Rocky 13 Мар 2018 в 08:48