Как подключить push-уведомления для Android

Шаг 1. Выберите канал push-уведомлений

  1. Перейдите в раздел Настройки → Каналы в личном кабинете edna Pulse.
  2. Выберите существующий канал push-уведомлений, в котором вы хотите разместить приложение, или подключите новый по инструкции.
В одном канале вы можете объединить несколько приложений, пользователям которых вы хотите отправлять push-уведомления в рамках одной рассылки.
  1. Убедитесь, что у вас есть:
    • Проект приложения Android с minSdk не ранее 21 (Android 5) и targetSdk не позже 34 (Android 14).
    • JSON-файл сервисного аккаунта Google. Как получить JSON-файл смотрите в статье.
    • Файл google-services.json из Firebase.
    • Устройство Android версии 5.0 и выше или эмулятор с сервисами Google Play.
    • Актуальная версия Android Studio.

Шаг 2. Введите данные из Firebase

  1. Зарегистрируйте приложение в консоли Firebase по инструкции.
  2. Получите JSON-файл сервисного аккаунта Google по инструкции.
  3. Перейдите в раздел Настройки Каналы Настройка приложения Android в личном кабинете edna Pulse.
  4. Введите имя приложения.
  5. Загрузите полученный JSON-файл сервисного аккаунта Google.
  6. Нажмите Сохранить и продолжить.

Шаг 3. Добавьте зависимости в файл build.gradle

  1. Добавьте зависимости в файл build.gradle проекта: укажите адрес репозитория edna и добавьте в список зависимостей сервисы Google:
  buildscript {  
      //...
    dependencies {
        //...
        classpath "com.google.gms:google-services:4.3.10"
    }
    //...
  allprojects {
    repositories {
       //...
        maven { url 'https://maven-pub.edna.ru/repository/maven-releases'}
    }
}
  1. В файл build.gradle приложения подключите плагин и добавьте библиотеку edna в список зависимостей:
      apply plugin: 'com.google.gms.google-services'

      dependencies {
         //...
         implementation platform("com.edna.android:push-x-bom:2.3.2")
      }
  1. Укажите в манифесте приложения следующую строку с ключом доступа к push-сервису edna:
<meta-data android:name="com.pushserver.android.appId" 
android:value="ключ доступа к пуш-сервису edna с шага 2 настроек приложения" />
  1. Добавьте файл google-services.json в корень директории app вашего приложения в Android Studio.

  2. Библиотека edna по умолчанию инициализируется автоматически.
    Если в приложении реализован Configuration.Provider, используйте ручную инициализацию библиотеки.

Шаг 4. Добавьте код обработки нажатий на уведомление

При нажатии на уведомление или кнопки действий пользователь попадает в приложение.

Библиотека edna обработает информацию о переходе пользователя и направит Intent в стартовое Activity приложения. Обработайте полученную от библиотеки edna информацию в методах onCreate и onNewIntent приложения.

Библиотека edna передаст в Intent строку действия, указанную вами в рассылке. Пример кода для обработки перехода клиента по уведомлению:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //...
        intent?.extras?.getParcelable<PushAction>(PUSH_ACTION_KEY)?.let {
        // Hавигация клиента с учётом переданной строки, где PUSH_ACTION_KEY = "action"
            redirectUser(it.action)
        }
        //...
    }

    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        //...
        intent?.extras?.getParcelable<PushAction>(PUSH_ACTION_KEY)?.let {
        // Hавигация клиента с учётом переданной строки, где PUSH_ACTION_KEY = "action"
            redirectUser(it.action)
        }
        //...
    }
}
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PushAction extraAction = getIntent().getExtras().getParcelable(PUSH_ACTION_KEY);
	// Hавигация клиента с учётом переданной строки, где PUSH_ACTION_KEY = "action"
        redirectUser(extraAction);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        PushAction extraAction = getIntent().getExtras().getParcelable(PUSH_ACTION_KEY);
	// Hавигация клиента с учётом переданной строки, где PUSH_ACTION_KEY = "action"
        redirectUser(extraAction);
    }
}

Шаг 5. Поддержите регистрацию устройств пользователей в сервисе edna

  1. Выберите тип регистрации устройства на платформе.
    Устройство пользователя появится в edna Pulse после регистрации. Сейчас доступен только автоматический способ регистрации. Скоро будет добавлен ручной способ.
    • При автоматической регистрации библиотека edna самостоятельно регистрирует устройство в сервисе edna. Этот способ проще, не требует от вас управлять регистрацией, но не рекомендуется для отправки конфиденциальных данных.
    • После появления ручного способа ваш бэкенд сможет самостоятельно регистрировать устройство в сервисе edna через специальный метод API.
  2. Для регистрации пользователя в сервисе вызовите метод login библиотеки, укажите идентификатор пользователя и тип идентификатора SubscriberIdType.

Вызовите метод после успешной авторизации пользователя в вашем приложении:

PushX.login("79001002030", SubscriberIdType.PHONE_NUMBER)
PushX.login("79001002030", SubscriberIdType.PHONE_NUMBER.INSTANCE)

Доступны следующие виды SubscriberIdType:

  • номер телефона (PhoneNumber);
  • адрес электронной почты (Email);
  • идентификаторы Facebook*, Telegram, Google, Apple, Яндекс (FacebookId*, TelegramId, GoogleId, AppleId, YandexId);
  • внутренние идентификаторы пользователя (ExtUserId, CookieId);
  • UTM-метка (UTM).
  1. В момент деавторизации пользователя в приложении, вызовите метод logout библиотеки, чтобы отключить устройство пользователя в сервисе edna:
PushX.logout()
* Деятельность компании Meta запрещена на территории Российской Федерации.

Шаг 6. Скомпилируйте и запустите приложение

  1. Подключите к интернету устройство для проверки интеграции.
  2. Скомпилируйте и запустите приложение.
  3. Перейдите в раздел Настройки Каналы Настройка приложения Android в личном кабинете edna Pulse.
  4. Нажмите Далее, чтобы открыть экран ожидания регистрации устройства.

Шаг 7. Проверьте подключение устройства и протестируйте получение push-уведомления

Если вы запустили приложение на нескольких устройствах, на этом шаге покажется только последнее подключенное.
  1. Нажмите Протестировать пуши, чтобы с помощью edna Pulse проверить интеграцию.

  2. Проверьте, что push-уведомление приходит и отображается на тестовом устройстве.
  3. Нажмите Да, чтобы подтвердите доставку, если все отображается верно.

  4. Перейдите к настройке каскада и к запуску рассылки.
Перед загрузкой обновленной версии в магазин приложений обновите декларацию о сборе данных.