-
Notifications
You must be signed in to change notification settings - Fork 4
Методы и свойства api
-
Общая информация
SDK API ThreadsWidget.init(Object)
SDK API ThreadsWidget.unInit()
SDK API ThreadsWidget.reInit([Object])
SDK API ThreadsWidget.showChat()
SDK API ThreadsWidget.hideChat()
SDK API ThreadsWidget.onScenarios(callback)
SDK API ThreadsWidget.version()
SDK API ThreadsWidget.commitHash()
SDK API ThreadsWidget.onLoad(callback)
SDK API ThreadsWidget.on(event, callback)
SDK API ThreadsWidget.setLocale('localeCode')
SDK API ThreadsWidget.getUnreadCounter()
SDK API ThreadsWidget.setUnavailable([Boolean])
Для обращения методам и свойствам API используется глобальный объект ThreadsWidget
Инициализация Чата без использования кода инициализации.
Параметры
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-5.11.3.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,
});
Удаление кода Чата из DOM и разрыв установленных подключений.
Переинициализация Чата. Для SPA веб-сайтов метод позволяет без перезагрузки страницы перевести чат из авторизованного режима в неавторизованный и наоборот. Object
- объект, где ключом является значение параметра webchat/clientId
файла конфигурации settings.json
, а его значением идентификатор авторизованного клиента. Если передать в качестве значения пустую строку, то чат перейдет в неавторизованный режим.
Пример перехода в неавторизованный режим
ThreadsWidget.reInit({
clientId: '',
});
Пример перехода в авторизованный режим
ThreadsWidget.reInit({
clientId: 'h5lkdj3dxdkjdn123oxsdmvkaffqef',
});
Также имеется возможность передачи в Object
настроек темизации в формате, который используется в файле конфигурации Чата для секции theme
. Для этого передайте в Object
настройки темизации используя ключ theme
.
Пример переключения Чата на другую тему оформления
ThreadsWidget.reInit({
theme: { skin: { name: "halcyon" } }
})
Отобразить контейнер с Чатом.
Пример
<button onclick="ThreadsWidget.showChat()">Показать</button>
Скрыть контейнер с Чатом.
Пример
<button onclick="ThreadsWidget.hideChat()">Скрыть</button>
Вышеприведенные методы предназначены для управления видимостью Чата. Их следует использовать в случае, когда вместо стандартной стартовой кнопки используется другой способ (например, пользовательская стартовая кнопка) чтобы показать/скрыть Чат. Для переключения Чата в режим без стандартной стартовой кнопки нужно установить в конфигурации Чата параметр
isContainerHidden
в значениеtrue
. Полный пример создания собственной кнопки для управления видимостью Чата вы найдете в директорииexamples/Custom button
SDK.
Метод позволяет указать функцию обратного вызова, выполняющуюся при получении сценариев.
Параметры
callback
- функция, которая будет выполнена при получении сценариев
Пример
ThreadsWidget.onScenarios(function() {
console.log('Chat scenarios', scenarios);
});
Метод, возвращающий версию Чата
Пример
ThreadsWidget.version();
Метод, возвращающий хеш коммита, на котором собран Чат
Пример
ThreadsWidget.commitHash();
Метод позволяет указать функцию обратного вызова, выполняющуюся при завершении загрузки Чата.
Параметры
callback
- функция, которая будет выполнена при завершении загрузки Чата
Пример
ThreadsWidget.onLoad(function () {
// remove preloaders etc.
});
Метод позволяет установить обработчики событий. Устанавливать обработчики событий необходимо после инициализации используя метод ThreadsWidget.onLoad(callback)
Параметры
callback
- функция, которая будет выполнена при наступлении события
event
- наименование события
Для event аргумента могут использоваться следующие имена событий
networkError
- событие наступает при ошибках WS-соединения и HTTP-запросов. В обработчик будет передан объект с типом, статус-кодом и описанием ошибки.
hideChat
- событие наступает при скрытии контейнера чата
showChat
- событие наступает при появлении контейнера чата
closeChat
- событие наступает при закрытии чата
openChat
- событие наступает при открытии чата
showInviteMessage
- событие наступает при появлении приветственного сообщения
hideInviteMessage
- событие наступает при скрытии приветственного сообщения
changeOperationMode
- событие наступает при изменении режима работы чата. После наступление события вызовется обработчик в который будут переданы данные.
{
isNowInactive: Boolean - Принимает значение true/false, если наступило событие когда чат стал неактивным/активным, согласно настройкам режима работы чата
}
changeUnreadCounter
- событие наступает при появлении непрочитанных сообщений в чате. В обработчик будет передано количество непрочитанных сообщений.
Метод позволяет на лету изменять язык локализации Чата
Пример
ThreadsWidget.setLocale('en');
Метод возвращает количество непрочитанных сообщений в виджете
Пример
ThreadsWidget.getUnreadCounter();
Метод позволяет на лету изменять доступность чата.
При этом edna обеспечивает обработку бизнес-сценария, при наступлении соответствующих условий:
- если был вызов "сделать чат недоступным", когда у клиента активный тред, то edna оставляет чат доступным
- если был вызов "сделать чат недоступным", когда у клиента не было активного треда, но виджет был развернут - чат остается видимым, но поле ввода не доступно
- в остальных случаях произойдет скрытие чата
Пример
ThreadsWidget.setUnavailable(true);