Структура уведомления
Структура полного уведомления
public RemoteMessage( String messageId, int priority, int ttl, String collapseKey, Map<String, String> data, byte [] rawData, Notification notification ) { this .messageId = messageId; this .priority = priority; this .ttl = ttl; this .collapseKey = collapseKey; this .data = data; this .rawData = rawData; this .notification = notification; } |
- messageId — уникальный ID сообщения. Является идентификатором каждого сообщения;
- priority — возвращает значение приоритетности (на данный момент не учитывается). Возможны следующие варианты:
- 0 — UNKNOWN:
- 1 - HIGH;
- 2 - NORMAL.
- ttl — возвращает время жизни пуш-уведомления типа Int в секундах;
- collapseKey — идентификатор группы уведомлений (на данный момент не учитывается);
- data — словарь, в который можно передать дополнительные данные для уведомления;
- rawData — словарь data в виде бинарного массива;
- notification — объект уведомления.
Структура объекта Notification
public Notification( String title, String body, String channelId, Uri imageUrl, String color, String icon, String clickAction ) { this .title = title; this .body = body; this .channelId = channelId; this .imageUrl = imageUrl; this .color = color; this .icon = icon; this .clickAction = clickAction; } |
- 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 активити не откроется.
Обновлено 5 сентября 2023 г.
Was this information helpful?