Частые проблемы при получении пуш-уведомлений
Сперва проверьте следующие частые причины проблем при получении пуш-уведомлений.
- Проверьте соединение с интернетом и настройки файервола. Для получения пуша необходимо стабильное соединение с интернетом, без ограничений на доступ к серверам APNS, FCM и HMS.
- Убедитесь, что разрешили показ пуш-уведомлений на тестовом устройстве.
- Проверьте настройки показа уведомлений для приложения – они должны допускать отображение всплывающих окон (баннеров) на Android и на iOS.
- Энергосберегающий режим на некоторых устройствах может повлиять на получение пуш-уведомлений. Отключите энергосбережение и повторите попытку получения пуша.
Чек-лист интеграции пуш-уведомлений
- Проверьте получение пушей в разные состояния приложения. Если всё сделано правильно, во всех случаях вы должны видеть пуш, а в отчете по сообщениям пуш должен отображаться как доставленный.
- Открытое приложение
- Свёрнутое приложение
- Выгруженное из памяти
- Doze mode (только в Android)
- Убедитесь, что следуете рекомендациям по запросу пользовательского разрешения на показ пуш-уведомлений:
- Рекомендации для Android на сайте Android developers
- Рекомендации для iOS на сайте Apple developer
- Проверьте переход пользователя в приложение при нажатии на пуш. Если используете кнопки или ссылки, проверьте корректность маршрутизации пользователя на заданный ссылкой экран приложения.
- Если ваше приложение должно уметь получать пуши от нескольких поставщиков уведомлений, убедитесь, что правильно настроили интеграцию.
iOS
- Убедитесь, что в файле Info.plist и параметре edna_app_group указано одно и то же имя AppGroup для расширений Notification Content Extension, Notification Service Extension и для приложения.
- Проверьте, что на вкладке Signing & Capabilities подключена одна и та же AppGroup для расширений Notification Content Extension, Notification Service Extension и для приложения.
- Проверьте, есть ли в коде приложения переопределение
UNUserNotificationCenter.current().delegate = self
и свой обработчик
userNotificationCenter(_:willPresent:withCompletionHandler:)
При их наличии отрисовка уведомления в развёрнутом приложении стандартными средствами библиотеки невозможна. Вы можете либо отказаться от переопределения и обработки, либо реализовать логику отрисовки уведомления в коде приложения.
Android
- Проверьте, что в build.gradle не прописаны зависимости hmscore и com.huawei.hms:push.
- Проверьте, что используете в проекте плагин Gradle не ниже версии 3.6.0.