Skip to content

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

edna-publisher edited this page Oct 6, 2023 · 44 revisions

Содержание

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

Для обращения методам и свойствам 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.2.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.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 - событие наступает при появлении непрочитанных сообщений в чате. В обработчик будет передано количество непрочитанных сообщений.

SDK API ThreadsWidget.setLocale('localeCode')

Метод позволяет на лету изменять язык локализации Чата

Пример

ThreadsWidget.setLocale('en');

SDK API ThreadsWidget.getUnreadCounter()

Метод возвращает количество непрочитанных сообщений в виджете

Пример

ThreadsWidget.getUnreadCounter();

SDK API ThreadsWidget.setUnavailable([Boolean])

Метод позволяет на лету изменять доступность чата.

При этом edna обеспечивает обработку бизнес-сценария, при наступлении соответствующих условий:

  • если был вызов "сделать чат недоступным", когда у клиента активный тред, то edna оставляет чат доступным
  • если был вызов "сделать чат недоступным", когда у клиента не было активного треда, но виджет был развернут - чат остается видимым, но поле ввода не доступно
  • в остальных случаях произойдет скрытие чата

Пример

ThreadsWidget.setUnavailable(true);
Clone this wiki locally