На странице Настройки > Каналы выберите существующий или создайте новый канал, в котором хотите разместить приложение. Вы можете объединить в одном канале приложения, пользователям которых хотите отправлять пуши в рамках одной рассылки.
Перед тем как продолжить, убедитесь, что располагаете всем необходимым. Вам понадобятся:
• Проект приложения Андроид с minSdk не ранее 21 (Андроид 5) и targetSdk не позже 31 (Андроид 12)
• Параметры Sender ID и Server Key из Firebase
• Файл google-services.json из Firebase
• Устройство с Андроид 5.0 и новее или эмулятор с сервисами Google Play
• Актуальная версия Android Studio
Описанные далее процессы предполагают, что вы завершили шаги, описанные в статье Создание канала пуш-уведомлений.
Шаг 1. Введите данные из Firebase
- Зарегистрируйте приложение в консоли Firebase.
- Получите параметры Sender ID и Server Key из Firebase.
- На странице Настройки > Каналы > Настройка приложения Android в edna Pulse введите имя приложения, а также параметры Sender ID и Server Key для своего приложения в поля Firebase Sender ID и Firebase API Key соответственно.
Если требуется отправлять пуши также через облако Huawei, далее следуйте инструкции по подключению пуш-облака Huawei. - Нажмите Сохранить и продолжить.
Шаг 2. Добавьте зависимости в файл build.gradle
- Добавьте зависимости в файл build.gradle проекта — укажите адрес репозитория edna и добавьте в список зависимостей сервисы Google:
buildscript { repositories { //... maven { url 'http://developer.huawei.com/repo/' } } //... dependencies { //... classpath "com.google.gms:google-services:4.3.10" } //... allprojects { repositories { //... maven { url 'https://maven-pub.edna.ru/repository/maven-releases'} } }
- В файл build.gradle приложения подключите плагин, укажите уникальный ключ приложения для доступа к пуш-сервису edna и добавьте библиотеку edna в список зависимостей:
apply plugin: 'com.google.gms.google-services' defaultConfig { //... // Уникальный ключ приложения manifestPlaceholders = [edna_app_id: "ваш ключ доступа к пуш-сервису edna"] } dependencies { //... implementation "com.edna.android:push-x:1.2.2" }
- Добавьте файл google-services.json в корень директории app вашего приложения в Android Studio.
- Библиотека edna инициализируется автоматически. Но если в приложении реализован Configuration.Provider, добавьте код инициализации библиотеки в метод onCreate приложения:
override fun onCreate() { super.onCreate() AppInitializer.getInstance(applicationContext) .initializeComponent(PushXInitializer::class.java) … }
И удалите инициализатор библиотеки com.edna.android.push_x.PushXInitializer
из androidx.startup.InitializationProvider
:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="merge"> <!-- other initializers --> <meta-data android:name="com.edna.android.push_x.PushXInitializer" android:value="androidx.startup" tools:node="remove" /> <!-- only if using manual initialization --> </provider>
Шаг 3. Добавьте код обработки нажатий на уведомление
Если пользователь нажмёт на уведомление или кнопки действий, то попадёт в приложение.
Библиотека 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); } }
Шаг 4. Поддержите регистрацию устройств пользователей в сервисе edna
- Выберите тип регистрации устройства на платформе.
Устройство пользователя появится в сервисе edna после регистрации. Сейчас доступен только автоматический способ регистрации. Скоро будет добавлен ручной способ.- При автоматической регистрации библиотека edna самостоятельно регистрирует устройство в сервисе edna. Этот способ проще, не требует от вас управлять регистрацией, но не рекомендуется для отправки конфиденциальных данных.
- После появления ручного способа ваш бэкенд сможет самостоятельно регистрировать устройство в сервисе edna через специальный метод API.
- Для регистрации пользователя в сервисе вызовите метод
login
библиотеки, укажите идентификатор пользователя и тип идентификатораSubscriberIdType
.
Следует вызывать метод только после успешной авторизации пользователя в вашем приложении:
PushX.login("79000000000", SubscriberIdType.PHONE_NUMBER)
PushX.login("79000000000", SubscriberIdType.PHONE_NUMBER.INSTANCE)
Доступны следующие виды SubscriberIdType
:
- Номер телефона (
PhoneNumber
) - Адрес электронной почты (
Email
) - Идентификаторы Facebook*, Телеграм, Гугл, Эпл, Яндекс (
FacebookId*
,TelegramId
,GoogleId
,AppleId
,YandexId
) - Внутренние идентификаторы пользователя (
ExtUserId
,CookieId
) - UTM-метка (
UTM
)
- В момент деавторизации пользователя в приложении, вызовите метод
logout
библиотеки, чтобы отключить устройство пользователя в сервисе edna:
PushX.logout()
* Деятельность сети запрещена на территории РФ
Шаг 5. Скомпилируйте и запустите приложение
- Подключите к интернету устройство для проверки интеграции.
- Скомпилируйте и запустите приложение.
- На странице Настройки > Каналы > Настройка приложения Android в edna Pulse после запуска приложения нажмите Далее — откроется экран ожидания регистрации устройства (Шаг 6 на экране).
Шаг 6. Проверьте подключение устройства и протестируйте получение пуша
На данном шаге сервис edna поможет проверить корректность интеграции. Если всё сделано правильно, вы увидите название своего тестового устройства и кнопку отправки тестового пуша. Если вы запустили приложение на нескольких устройствах, на данном шаге сможете увидеть только последнее подключенное.
- Нажмите Протестировать пуши.
- Проверьте, что пуш приходит и отображается на тестовом устройстве.
- Если пуш пришёл и отображается как следует, подтвердите доставку пуша, нажав Да.
Готово! Теперь можете настроить каскад и запустить рассылку.