Структура уведомления

Структура полного уведомления

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, с помощью которого будет открыта активити при нажатии на уведомление.

Создание канала для отправки уведомления

Для канала, в который будет отправлено уведомление действует следующий порядок приоритета:

  1. Если в пуш-уведомлении есть поле channelId, то RuStoreSDK отправит уведомление в данный канал. При этом ваше приложение ответственно за то, чтобы создать этот канал заранее.
  2. Если поля channelId нет в пуш-уведомлении, но ваше приложение указало параметр с каналом в AndroidManifest.xml, то будет использован канал из AndroidManifest.xml. Ваше приложение ответственно за создание канала. 
  3. Если поля 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?