Перейти к основному содержимому
Версия: 6.9.1

Методы и свойства API

Общая информация

Для обращения методам и свойствам API используется глобальный объект ThreadsWidget

SDK API ThreadsWidget.init(Object)

Инициализация Чата без использования кода инициализации.

Параметры

Object - объект с настройками подключения. Доступны следующие поля:

ПолеТипОбязательныйОписание
configurationFilestring-URL конфигурационного файла. settings.json от корня сайта.
settingsobject-Объект с настройками. Соответствует формату конфигурационного файла settings.json
localestring-Язык локализации
unavailableboolean-Недоступность чата. При установке параметра unavailable, после загрузки страницы с чатом, чат будет скрыт кроме случаев когда у клиента был активный тред.
clientId`stringnumber`-
clientDatastring-Дополнительные клиентские данные, JSON-объект, преобразованный в строку.

Важно! Для инициализации через API стандартный код инициализации не требуется. Подключите главный скрипт (бандл) виджета с помощью тега script c data-атрибутом data-edna-widget:

<script src="/threadswidget-6.9.1.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.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);