Методы и свойства API
Общая информация
Для обращения методам и свойствам API используется глобальный объект ThreadsWidget
SDK API ThreadsWidget.init(Object)
Инициализация Чата без использования кода инициализации.
Параметры
Object
- объект с настройками подключения. Доступны следующие поля:
Поле | Тип | Обязательный | Описание |
---|---|---|---|
configurationFile | string | - | URL конфигурационного файла. settings.json от корня сайта. |
settings | object | - | Объект с настройками. Соответствует формату конфигурационного файла settings.json |
locale | string | - | Язык локализации |
unavailable | boolean | - | Недоступность чата. При установке параметра unavailable, после загрузки страницы с чатом, чат будет скрыт кроме случаев когда у клиента был активный тред. |
clientId | `string | number` | - |
clientData | string | - | Дополнительные клиентские данные, JSON-объект, преобразованный в строку. |
Важно! Для инициализации через API стандартный код инициализации не требуется. Подключите главный скрипт (бандл) виджета с помощью тега script
c data-атрибутом data-edna-widget
:
<script src="/threadswidget-6.18.0.min.js" data-edna-widget></script>
<script>
window.onload = function () {
ThreadsWidget.init({
configurationFile: '/settings.json',
clientId: '<CLIENT_ID>'
})
}
</script>
Пример инициализации в неавторизованном режиме
ThreadsWidget.init({
configurationFile: "/settings.json",
clientId: null,
});
SDK API ThreadsWidget.unInit()
Удаление кода Чата из DOM и разрыв установленных подключений.
SDK API ThreadsWidget.reInit([Object])
Переинициализация Чата. Для SPA веб-сайтов метод позволяет без перезагрузки страницы перевести чат из авторизованного режима в неавторизованный и наоборот. Object
- объект, где ключом является значение параметра webchat/clientId
файла конфигурации settings.json
, а его значением идентификатор авторизованного клиента. Если передать в качестве значения пустую строку, то чат перейдет в неавторизованный режим.
Пример перехода в неавторизованный режим
ThreadsWidget.reInit({
clientId: '',
});
Пример перехода в авторизованный режим
ThreadsWidget.reInit({
clientId: 'h5lkdj3dxdkjdn123oxsdmvkaffqef',
});
Также имеется возможность передачи в Object
настроек темизации в формате, который используется в файле конфигурации Чата для секции theme
. Для этого передайте в Object
настройки темизации используя ключ theme
.
Пример переключения Чата на другую тему оформления
ThreadsWidget.reInit({
theme: { skin: { name: "halcyon" } }
})
SDK API ThreadsWidget.clientLogout()
Выход из системы для авторизованного пользователя. Требуется для прекращения отправки push-уведомлений на устройство.
SDK API ThreadsWidget.showChat()
Отобразить контейнер с Чатом.
Пример
<button onclick="ThreadsWidget.showChat()">Показать</button>
SDK API ThreadsWidget.hideChat()
Скрыть контейнер с Чатом.
Пример
<button onclick="ThreadsWidget.hideChat()">Скрыть</button>
Вышеприведенные методы предназначены для управления видимостью Чата. Их следует использовать в случае, когда вместо стандартной стартовой кнопки используется другой способ (например, пользовательская стартовая кнопка) чтобы показать/скрыть Чат. Для переключения Чата в режим без стандартной стартовой кнопки нужно установить в конфигурации Чата параметр
isContainerHidden
в значениеtrue
. Полный пример создания собственной кнопки для управления видимостью Чата вы найдете в директорииexamples/Custom button
SDK.
SDK API ThreadsWidget.onScenarios(callback)
Метод позволяет указать функцию обратного вызова, выполняющуюся при получении сценариев.
Параметры
callback
- функция, которая будет выполнена при получении сценариев
Пример
ThreadsWidget.onScenarios(function() {
console.log('Chat scenarios', scenarios);
});
SDK API ThreadsWidget.version()
Метод, возвращающий версию Чата
Пример
ThreadsWidget.version();
SDK API ThreadsWidget.commitHash()
Метод, возвращающий хеш коммита, на котором собран Чат
Пример
ThreadsWidget.commitHash();
SDK API ThreadsWidget.onLoad(callback)
Метод позволяет указать функцию обратного вызова, выполняющуюся при завершении загрузки Чата.
Параметры
callback
- функция, которая будет выполнена при завершении загрузки Чата
Пример
ThreadsWidget.onLoad(function () {
// remove preloaders etc.
});
SDK API ThreadsWidget.on(event, callback)
Метод позволяет установить обработчики событий. Устанавливать обработчики событий необходимо после инициализации используя метод ThreadsWidget.onLoad(callback)
Параметры
callback
- функция, которая будет выполнена при наступлении события.
event
- наименование события.
Для аргумента event
могут использоваться следующие типы событий
networkError
- событие наступает при ошибках WS-соединения и HTTP-запросов. В обработчик будет передан объект с типом, статус-кодом и описанием ошибки.
hideChat
- событие наступает при скрытии контейнера чата.
showChat
- событие наступает при появлении контейнера чата.
closeChat
- событие наступает при закрытии чата.
openChat
- событие наступает при открытии чата.
showInviteMessage
- событие наступает при появлении приветственного сообщения.
hideInviteMessage
- событие наступает при скрытии приветственного сообщения.
changeOperationMode
- событие наступает при изменении режима работы чата. После наступление события вызовется обработчик в который будут переданы данные:
{
isNowInactive: Boolean // Принимает значение true/false, если наступило событие когда чат стал неактивным/активным, согласно настройкам режима работы чата
}
changeUnreadCounter
- событие наступает при появлении непрочитанных сообщений в чате. В обработчик будет передано количество непрочитанных сообщений.
messageSent
- событие наступает при отправке сообщения клиентом. В обработчик будет передан объект сообщения.
SDK API ThreadsWidget.setLocale('localeCode')
Метод позволяет на лету изменять язык локализации Чата
Пример
ThreadsWidget.setLocale('en');
SDK API ThreadsWidget.getUnreadCounter()
Метод возвращает количество непрочитанных сообщений в виджете
Пример
ThreadsWidget.getUnreadCounter();
SDK API ThreadsWidget.setUnavailable([Boolean])
Метод позволяет на лету изменять доступность чата.
При этом edna обеспечивает обработку бизнес-сценария, при наступлении соответствующих условий:
- если был вызов "сделать чат недоступным", когда у клиента активный тред, то edna оставляет чат доступным
- если был вызов "сделать чат недоступным", когда у клиента не было активного треда, но виджет был развернут - чат остается видимым, но поле ввода не доступно
- в остальных случаях произойдет скрытие чата
Пример
ThreadsWidget.setUnavailable(true);