Push-уведомления
Push-уведомления доставляет сервис Google Firebase, поэтому для них нужен проект в Firebase и два его параметра в настройках решения. Ниже — весь путь от создания проекта до проверки.
Итог, к которому идём: в ASTDESIGN → МаркетПро → Настройки, вкладка Приложения и push, блок Push-уведомления, должны быть заполнены Firebase: Project number и Firebase: json файл приватного ключа.
Шаг 1. Создание проекта
Перейдите в Firebase Console https://console.firebase.google.com/ и нажмите Add project.
Укажите название проекта (для вашего удобства), поставьте галочку согласия и нажмите Continue.
Включите Google Analytics и нажмите Continue.
Выберите аккаунт Google Analytics (или добавьте новый) и нажмите Create project.
Подождите несколько секунд, пока проект создается.
Шаг 2. Создание Android приложения
На главном экране вашего проекта нажмите на логотип Android в блоке Get started by adding Firebase to you app.
Укажите идентификатор приложения, который вы указывали в capacitor.config.json. В нашем примере это ru.site.app.
Укажите название приложения, которое указывали в capacitor.config.json.
Нажмите Register app.
Скачайте сгенерированный файл google-service.json. Далее можете нажимать Next до завершения работы мастера, либо закрыть его нажав на крестик слева вверху.
Разместите скачанный файл в папке android/app вашего проекта.
Шаг 3. Создание iOS приложения
На главном экране вашего проекта нажмите Add app, затем на логотип iOS.
Укажите идентификатор приложения, который вы указывали в capacitor.config.json. В нашем примере это ru.site.app.
Укажите название приложения, которое указывали в capacitor.config.json.
Нажмите Register app.
Скачайте сгенерированный файл GoogleService-Info.plist. Далее можете нажимать Next до завершения работы мастера, либо закрыть его нажав на крестик слева вверху.
Разместите скачанный файл в папке ios/App/App (именно вложенная папка App) внутри вашего проекта.
Шаг 4. Добавление APN Authentication Key
Перейдите в кабинет разработчика Apple https://developer.apple.com/account и на главном экране нажмите Keys.
Нажмите на + (белый плюс на синем фоне) справа от заголовка Keys.
Укажите название ключа (ни на что не влияет - исключительно для вашего удобства), поставьте галочку напротив Apple Push Notifications Service (APNs) и нажмите Continue.
На следующем шаге нажмите Register.
Скачайте сгенерированный ключ и сохраните KeyID. Его нельзя восстановить! Если потеряете или забудете, необходимо будет создавать APN заново.
Перейдите обратно в Firebase Console в настройки проекта, который вы создали для iOS. Для этого нажмите на название проекта, а затем на шестерёнку.
В настройках перейдите на вкладку Cloud Messaging и в блоке APNs Authentication Key нажмите Upload для загрузки созданного ключа APN.
Во всплывающем окна загрузите ключ APN, который вы скачали в Apple Developer, укажите Key ID, который необходимо было сохранить, а также Team ID вашего аккаунта разработчика. После ввода всех данных нажмите Upload.
Team ID можно найти в разных местах. Например, на главной странице личного кабинета Apple Developer https://developer.apple.com/account в блоке Membership details. Скорее всего он будет вида ULR999999.
Шаг 5. Ключ Cloud Messaging API
На вкладке General скопируйте значение параметра Project number и укажите его в настройках решения в поле Firebase: Project number. После этого не забудьте внизу нажать Сохранить.
Далее вернитесь на вкладку Cloud Messaging и нажмите на ссылку Manage Service Accounts
На открывшейся странице нажмите на существующий аккаунт
Проверка
Отправьте пробное уведомление на своё устройство: соберите сегмент типа Пользователи, укажите в нём свой ID и отправьте рассылку — см. Push-рассылки и Сегменты.
Если уведомление не пришло, смотрите статистику рассылок: по ней видно, ушло ли сообщение и с какой ошибкой. Отдельные разборы — в FAQ push-рассылок.
Ещё два условия, без которых рассылка не двинется: работающий cron (задачи checkPushLetters, pushDevices, pushApnsTokens — см. «cron») и приложение, собранное с теми же данными Firebase, что указаны в настройках решения. Если ключ Firebase заменили, приложение нужно пересобрать и выпустить заново.