Как подключить push-уведомления для Android
Выберите канал push-уведомлений
-
Перейдите в раздел Каналы в личном кабинете edna Pulse.
-
Выберите существующий канал push-уведомлений, в котором вы хотите разместить приложение.
Как подключить канал Pushк сведениюВ одном канале вы можете объединить несколько приложений, пользователям которых вы хотите отправлять push-уведомления в рамках одной рассылки.
-
Убедитесь, что у вас есть:
-
Проект приложения Android с minSdk не ранее 21 (Android 5) и targetSdk не позже 35 (Android 15).
-
JSON-файл сервисного аккаунта Google.
-
Файл
google-services.jsonиз Firebase. -
Устройство Android версии 5.0 и выше ил и эмулятор с сервисами Google Play.
-
Актуальная версия Android Studio.
-
Введите данные из Firebase
-
Зарегистрируйте приложение в консоли Firebase.
Как зарегистрировать приложение в Firebase -
Получите JSON-файл сервисного аккаунта Google.
Как получить JSON-файл сервисного аккаунта Google -
Перейдите в раздел Каналы → Настройка приложения Android в личном кабинете edna Pulse.
-
Введите имя приложения.
-
Загрузите полученный JSON-файл сервисного аккаунта Google.
-
Нажмите Сохранить и продолжить.
Добавьте зависимости в файл build.gradle
-
Добавьте зависимости в файл build.gradle проекта: укажите адрес репозитория edna и добавьте в список зависимостей сервисы Google:
build.gradle (Project)buildscript {
//...
dependencies {
//...
classpath "com.google.gms:google-services:4.4.1"
}
//...
allprojects {
repositories {
//...
maven { url 'https://maven-pub.edna.ru/repository/maven-releases'}
}
} -
В файл build.gradle приложения подключите плагин и добавьте библиотеку edna в список зависимостей:
build.gradle (Module:app)apply plugin: 'com.google.gms.google-services'
dependencies {
//...
implementation platform("com.edna.android:push-x-bom:2.6.0")
} -
Укажите в манифесте приложения следующую строку с ключом доступа к push-сервису edna:
Android manifest<meta-data android:name="com.pushserver.android.appId"
android:value="ключ доступа к пуш-сервису edna с шага 2 настроек приложения" /> -
Добавьте файл
Как получить google-services.jsongoogle-services.jsonв корень директории app вашего приложения в Android Studio. -
Библиотека edna по умолчанию инициализируется автоматически.
Используйте ручную инициализацию библиотеки, если в приложении реализован Configuration.Provider
Добавьте код обработки нажатий на уведомление
При нажатии на уведомление или кнопки действий пользователь попадает в приложение.
Библиотека edna обработает информацию о переходе пользователя и направит Intent в стартовое Activity приложения. Обработайте полученную от библиотеки edna информацию в методах onCreate и onNewIntent приложения.
Библиотека edna передаст в Intent строку действия, указанную вами в рассылке. Пример кода для обработки перехода клиента по уведомлению:
- Java
- Kotlin
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);
}
}
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)
}
//...
}
}
Поддержите регистрацию устройств пользователей в сервисе edna
Устройство пользователя появится в edna Pulse после регистрации. Сейчас доступен только автоматический способ регистрации. Скоро будет добавлен ручной способ.
-
Выберите тип регистрации устройства на платформе.
- При автоматической регистрации библиотека edna самостоятельно регистрирует устройство в сервисе edna. Этот способ проще, не требует от вас управлять регистрацией, но не рекомендуется для отправки конфиденциальных данных.
- После появления ручного способа ваш бэкенд сможет самостоятельно регистрировать устройство в сервисе edna через специальный метод API.
-
Для регистрации пользо вателя в сервисе вызовите метод
loginбиблиотеки, укажите идентификатор пользователя и тип идентификатораSubscriberIdType.Вызовите метод после успешной авторизации пользователя в вашем приложении:
- Java
- Kotlin
PushX.login("79001002030", SubscriberIdType.PHONE_NUMBER.INSTANCE)PushX.login("79001002030", SubscriberIdType.PHONE_NUMBER)Доступны следующие виды
SubscriberIdType:- номер телефона (
PhoneNumber); - адрес электронной почты (
Email); - идентификаторы
FacebookId*,TelegramId,GoogleId,AppleId,YandexId; - внутренние идентификаторы пользователя (
ExtUserId,CookieId); - UTM-метка (
UTM).
-
В момент деавторизации пользователя в приложении, вызовите метод
logoutбиблиотеки, чтобы отключить устройство пользователя в сервисе edna:PushX.logout()
Скомпилируйте и запустите приложение
- Подключите к интернету устройство для проверки интеграции.
- Скомпилируйте и запустите приложение.
- Перейдите в раздел Каналы → Настройка приложения Android в личном кабинете edna Pulse.
- Нажмите Далее, чтобы открыть экран ожидания регистрации устройства.