Структура уведомления
Структура полного уведомления
public data class RemoteMessage( val messageId: String?, val priority: Int, val ttl: Int, val collapseKey: String?, val data: Map<String, String>, val rawData: ByteArray?, val notification: Notification? ) |
- messageId — уникальный ID сообщения. Является идентификатором каждого сообщения;
- priority — возвращает значение приоритетности (на данный момент не учитывается). Возможны следующие варианты:
- 0 — UNKNOWN:
- 1 - HIGH;
- 2 - NORMAL.
- ttl — возвращает время жизни пуш-уведомления типа Int в секундах;
- collapseKey — идентификатор группы уведомлений (на данный момент не учитывается);
- data — словарь, в который можно передать дополнительные данные для уведомления;
- rawData — словарь data в виде бинарного массива;
- notification — объект уведомления.
Структура объекта Notification
public data class Notification( val title: String?, val body: String?, val channelId: String?, val imageUrl: Uri?, val color: String?, val icon: String?, val clickAction: String? ) |
- title — заголовок уведомления;
- body — тело уведомления;
- channelId — возможность задать канал, в который будет отправлено уведомление (актуально для Android 8.0 и выше);
- imageUrl — прямая ссылка на изображение для вставки в уведомление (изображение должно быть не более 1 мегабайта);
- color — цвет уведомления (Notification.color). Цвет необходимо передать в hex-формате, строкой (Пример: «#A52A2A»);
- icon — иконка уведомления. Иконка должна лежать в ресурсах приложения (res/drawable). Значение параметра - строка, которая совпадает с названием ресурса:
- в res/drawable лежит иконка small_icon.xml, которая в коде доступна через R.drawable.small_icon. Для отображения данной иконки в уведомлении сервер должен поместить в параметр «icon» значение «small_icon».
- clickAction — intent action, с помощью которого будет открыта активити при нажатии на уведомление.
Создание канала для отправки уведомления
Для канала, в который будет отправлено уведомление действует следующий порядок приоритета:
- Если в пуш-уведомлении есть поле channelId, то RuStoreSDK отправит уведомление в данный канал. При этом ваше приложение ответственно за то, чтобы создать этот канал заранее.
- Если поля channelId нет в пуш-уведомлении, но ваше приложение указало параметр с каналом в AndroidManifest.xml, то будет использован канал из AndroidManifest.xml. Ваше приложение ответственно за создание канала.
- Если поля channelId нет в пуш-уведомлении, и канал по умолчанию не задан в AndroidManifest.xml вашего приложения, то RuStoreSDK самостоятельно создаст канал и отправит в него уведомление. В дальнейшем все уведомления без заданного канала будут отправляться в этот канал.
Открытие Activity при нажатии на уведомление
По умолчанию при нажатии на уведомление RuStoreSDK открывает активити с action «android.intent.action.MAIN». Если поле clickAction присутствует, то RuStoreSDK откроет активити, которая попадает под Intent filter с указанным action.
Чтобы при нажатии на уведомление (относится и к активити по умолчанию) в RuStoreSDK открывалась активити, в манифесте приложения в соответствующем элементе <intent-filter> у активити добавьте строку <category android:name="android.intent.category.DEFAULT" />. Без этой строчки в RuStoreSDK активити не откроется.
Обновлено 20 июня 2023 г.
Was this information helpful?