Создание уведомлений
Вы можете создавать уведомления через административный интерфейс или программно в коде.
Административный интерфейс
После добавления дополнения в ваше приложение в главном меню появляется пункт Notifications. Экран Notifications предоставляет список созданных уведомлений и кнопки для управления ими.
Редактор уведомлений появляется после нажатия кнопки Create notification.
В диалоговом окне доступны следующие поля для заполнения:
-
Subject – тема уведомления.
-
Type – тип уведомления. Типов уведомлений по умолчанию нет. Смотрите раздел настройка, чтобы создать типы.
-
Recipients – список получателей уведомления. Начните вводить имя пользователя в поле и выберите подходящих пользователей из списка.
-
Channels – канал, используемый для уведомления.
-
In-app channel – пользователь получит уведомление в пользовательском интерфейсе приложения.
-
Email channel – пользователь получит email с уведомлением (доступно с дополнением Email).
-
-
Body – основное содержимое уведомления.
Программное создание
Сервис NotificationManager предоставляет методы для отправки уведомлений пользователям.
В примере ниже уведомление отправляется пользователю каждый раз, когда создается новый заказ.
private boolean justCreated;
@ViewComponent
private TypedTextField<Integer> numberField;
@Autowired
protected NotificationManager notificationManager;
@Subscribe
public void onInitEntity(InitEntityEvent<Order> event) {
justCreated = true;
}
@Subscribe(target = Target.DATA_CONTEXT)
public void onPostSave(final DataContext.PostSaveEvent event) { (1)
if (justCreated) { (2)
notificationManager.createNotification() (3)
.withSubject("New order")(4)
.withRecipientUsernames("admin") (5)
.toChannelsByNames("in-app") (6)
.withContentType(ContentType.PLAIN) (7)
.withBody("A new order with number " + numberField.getValue()+ " is created.") (8)
.send(); (9)
}
}
| 1 | Этот метод вызывается после сохранения изменений. |
| 2 | Проверяет, является ли сущность новой. |
| 3 | Инициирует NotificationRequestBuilder, который создает новый объект NotificationRequest. |
| 4 | Определяет тему уведомления. |
| 5 | Устанавливает получателя по указанному имени пользователя. |
| 6 | Устанавливает каналы уведомлений по указанным именам. Доступны in-app и email. |
| 7 | Устанавливает тип содержимого тела уведомления. |
| 8 | Устанавливает основное содержимое уведомления. |
| 9 | Создает и отправляет запрос на уведомление. |
| Нажмите Code Snippets на панели действий, чтобы сгенерировать код для отправки уведомлений. |