Push-уведомления от начала до конца
Вопрос
Расскажите, как вы реализуете push-уведомления в React Native-приложении.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
APNs и FCM (или Expo Push Service), токен устройства
Разрешения: объясняющий экран, запрос на iOS и Android 13+, каналы Android
Отправка токена на сервер при запуске и привязка к пользователю, отвязка при выходе
Обработка в foreground, background и при холодном старте
Данные: тип и id, навигация после готовности навигатора
Тестирование на реальных устройствах
Что могут спросить следом
- Как открыть экран, требующий входа, по нажатию на уведомление?
- Что делать, если пользователь отказал в разрешении?
- Как отправить уведомление в определённое время?
Разбор
Образцовый ответ: «Беру expo-notifications или Firebase Messaging. Перед системным запросом разрешения показываю свой экран с объяснением пользы, потому что повторно система не спросит. На Android 13+ тоже нужен запрос, а для Android 8+ заранее создаю каналы. Токен отправляю на сервер при каждом запуске и привязываю к пользователю, при выходе отвязываю. Сервер шлёт через FCM и APNs или через Expo Push Service. В данных только тип и id. Обрабатываю три состояния: в foreground сам решаю, показывать ли баннер, нажатие в фоне ловлю слушателем, а холодный старт через получение начального уведомления, переход делаю после готовности навигации и, если нужно, после входа. Проверяю на реальных устройствах обеих платформ»
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.