В случае если кнопка управления виджетом по умолчанию не устраивает, она может быть отключена и реализована самостоятельно.

Для этого виджет предоставляет набор методов и событий, используя которые, можно реализовать интерфейс управления виджетом любой сложности.

1. Методы

ОПИСАНИЕ МЕТОДАКОД
После инициализации виджет находится в скрытом состоянии. Чтобы показать его пользователю, необходимо вызвать метод open():widget.open();
Также можно открывать виджет сразу с текстом сообщения:widget.open('Текст сообщения пользователя');
Текст сообщения также можно добавить с помощью метода appendText():widget.appendText('Текст сообщения пользователя');
Скрыть виджет можно либо кликнув по кнопке закрыть в интерфейсе виджета, либо программно:widget.close();
Также API предоставляет метод смены состояния toggle, который показывает или скрывает виджет:widget.toggle();
Если виджет расположен в защищенной зоне и при инициализации использовались credentials, то при выходе из защищенной зоны необходимо в обязательном порядке вызвать метод logout(), чтобы закрыть текущую сессию пользователя и предотвратить неавторизованный доступ к переписке:widget.logout();
Уничтожение виджета, удаляет чат и кнопку:widget.destroy();
Управление пуш-токеном для нативных пушей через APNS (iPhone) и FCM (Android).widget.setIPhonePushToken("my-iphone-token"); widget.setAndroidPushToken("my-android-token");
Ручное обновление авторизованного клиента из CRM:widget.refreshClient();


2. События

События на которые можно подписаться использую стандартный для JavasScript интерфейс EventEmitter:


widget
.on('close', function () { console.log('Виджет закрыт'); });
widget.on('open', function () {
    console.log('Виджет открыт');
});

widget.on('message', function () {
    console.log('Новое сообщение');
});

С помощью события message например, можно проиграть звук, если виджет скрыт, а пользователю пришло сообщение.


widget.on('unread', function (count) {
    console.log('Количество непрочитанных сообщений', count);
});

С помощью события unread можно показывать пользователю количество непрочитанных сообщений. Событие возникает всякий раз, когда значение меняется. При первоначальном получении списка сообщений, если непрочитанных нет, то события не будет. Предполагается, что подписчик инициализирует счетчик сообщений как 0.


widget.on('file-clicked', function (url) {
    console.log('Пользователь нажал на файл, подписанная ссылка:', url);
}

Событие file-clicked отправляется только в режиме виджета mobile и передает подписанную ссылку на файл, на который нажал пользователь. Ссылка действует ограниченное количество времени. Время жизни настраивается на сервере.


  • No labels