Возможные ошибки при интеграции пуш-библиотек

Частые проблемы при получении пуш-уведомлений

Сперва проверьте следующие частые причины проблем при получении пуш-уведомлений.

  1. Проверьте соединение с интернетом и настройки файервола. Для получения пуша необходимо стабильное соединение с интернетом, без ограничений на доступ к серверам APNS, FCM и HMS.
  2. Убедитесь, что разрешили показ пуш-уведомлений на тестовом устройстве.
  3. Проверьте настройки показа уведомлений для приложения – они должны допускать отображение всплывающих окон (баннеров) на Android и на iOS.
  4. Энергосберегающий режим на некоторых устройствах может повлиять на получение пуш-уведомлений. Отключите энергосбережение и повторите попытку получения пуша.

Чек-лист интеграции пуш-уведомлений

  1. Проверьте получение пушей в разные состояния приложения. Если всё сделано правильно, во всех случаях вы должны видеть пуш, а в отчете по сообщениям пуш должен отображаться как доставленный.
    1. Открытое приложение
    2. Свёрнутое приложение
    3. Выгруженное из памяти
    4. Doze mode (только в Android)
  2. Убедитесь, что следуете рекомендациям по запросу пользовательского разрешения на показ пуш-уведомлений:
    1. Рекомендации для Android на сайте Android developers
    2. Рекомендации для iOS на сайте Apple developer
  3. Проверьте переход пользователя в приложение при нажатии на пуш. Если используете кнопки или ссылки, проверьте корректность маршрутизации пользователя на заданный ссылкой экран приложения.
  4. Если ваше приложение должно уметь получать пуши от нескольких поставщиков уведомлений, убедитесь, что правильно настроили интеграцию.

iOS

  1. Убедитесь, что в файле Info.plist и параметре edna_app_group указано одно и то же имя AppGroup для расширений Notification Content Extension, Notification Service Extension и для приложения.
  2. Проверьте, что на вкладке Signing & Capabilities подключена одна и та же AppGroup для расширений Notification Content Extension, Notification Service Extension и для приложения.
  3. Проверьте, есть ли в коде приложения переопределение
 UNUserNotificationCenter.current().delegate = self

и свой обработчик

userNotificationCenter(_:willPresent:withCompletionHandler:)

При их наличии отрисовка уведомления в развёрнутом приложении стандартными средствами библиотеки невозможна. Вы можете либо отказаться от переопределения и обработки, либо реализовать логику отрисовки уведомления в коде приложения.

Android

  1. Проверьте, что в build.gradle не прописаны зависимости hmscore и com.huawei.hms:push.
  2. Проверьте, что используете в проекте плагин Gradle не ниже версии 3.6.0.