Методы Чата

Все методы актуальны для версии 4.7.0.

Методы класса UsedeskChatSdk

1. Установка конфигурации Чата

fun setConfiguration(chatConfiguration: UsedeskChatConfiguration)

2. Получение конфигурации

fun requireConfiguration(): UsedeskChatConfiguration

3. Инициализация чата

fun init(
    context: Context,
    chatConfiguration: UsedeskChatConfiguration = requireConfiguration()
): UsedeskChat

Если конфигурация уже установлена через setConfiguration, второй аргумент можно не передавать.

Пример:

val usedeskChat = UsedeskChatSdk.init(requireContext())
val usedeskChat = UsedeskChatSdk.init(requireContext(), chatConfiguration)

4. Получение экземпляра инициализированного Чата

fun getInstance(): UsedeskChat?

Возвращает null, если чат ещё не инициализирован.

5. Получение экземпляра с проверкой

fun requireInstance(): UsedeskChat

То же, что getInstance(), но бросает исключение, если чат не инициализирован.

6. Освобождение ресурсов Чата

fun release(force: Boolean = true)

Аргументы:

Название Тип Описание
force Boolean Флаг жёсткого освобождения ресурсов: true — освободит ресурсы немедленно, false — освободит в том случае, если нет ни одного слушателя событий

7. Инициализация класса UsedeskPreparation

fun initPreparation(
    context: Context,
    chatConfiguration: UsedeskChatConfiguration = requireConfiguration()
): UsedeskPreparation

Пример:

val usedeskChatPreparation = UsedeskChatSdk.initPreparation(requireContext(), chatConfiguration)

8. Освобождение класса UsedeskPreparation

fun releasePreparation()

9. Установка фабрики сервиса уведомлений

fun setNotificationsServiceFactory(
    notificationsServiceFactory: UsedeskNotificationsServiceFactory?
)

Аргументы:

Название Тип Описание
notificationsServiceFactory UsedeskNotificationsServiceFactory? Фабрика сервиса уведомлений. Передайте null, чтобы сбросить ранее установленную

Пример:

val customNotificationsServiceFactory = object : UsedeskNotificationsServiceFactory() {...}
UsedeskChatSdk.setNotificationsServiceFactory(customNotificationsServiceFactory)

10. Установка своего хранилища сообщений

fun setUsedeskMessagesRepository(usedeskMessagesRepository: UsedeskMessagesRepository?)

Аргументы:

Название Тип Описание
usedeskMessagesRepository UsedeskMessagesRepository? Своя реализация хранилища черновиков и неотправленных сообщений. Передайте null, чтобы вернуть стандартное

11. Запуск сервиса уведомлений

fun startService(context: Context)

Пример:

UsedeskChatSdk.startService(requireContext())

12. Остановка сервиса уведомлений

fun stopService(context: Context)

Пример:

UsedeskChatSdk.stopService(requireContext())


Методы класса UsedeskChat

1. Добавление слушателя событий

fun addActionListener(listener: UsedeskActionListener)

Пример:

val listener = object : UsedeskActionListener { ... }
usedeskChat.addActionListener(listener)

2. Удаление слушателя событий

fun removeActionListener(listener: UsedeskActionListener)

Пример:

usedeskChat.removeActionListener(listener)

3. Проверка на наличие слушателей

fun isNoListeners(): Boolean

Пример:

if (UsedeskChatSdk.requireInstance().isNoListeners()) { ... }

4. Отправить текстовое сообщение

fun send(
    textMessage: String,
    localId: String? = null
)

Пример:

usedeskChat.send("Hello")

5. Отправить один файл

fun send(
    fileInfo: UsedeskFileInfo,
    localId: String? = null
)

6. Отправить несколько файлов

fun send(fileInfoList: Collection<UsedeskFileInfo>)

Пример:

val fileInfoList = listOf(UsedeskFileInfo.create(fileUri))
usedeskChat.send(fileInfoList)

7. Подписка на прогресс загрузки файла

fun addFileUploadProgressListener(
    localMessageId: String,
    listener: IFileUploadProgressListener
)

Слушатель получает вызовы onProgress(sent: Long, total: Long) по мере отправки файла.

8. Отписка от прогресса загрузки файла

fun removeFileUploadProgressListener(
    localMessageId: String,
    listener: IFileUploadProgressListener
)

9. Поставить оценку

fun sendRating(
    agentMessage: UsedeskMessageAgentText,
    ratingId: String
)

Аргументы:

Название Тип Описание
agentMessage UsedeskMessageAgentText Сообщение агента, которое оценивают
ratingId String Идентификатор выбранного варианта — id одного из agentMessage.rating.options

Если у сообщения нет оценки (rating == null) или ratingId не совпадает ни с одним вариантом из options, вызов ничего не делает.

После успешной отправки сообщение обновляется: в rating.selectedId попадает переданный ratingId. При ошибке отправка повторяется автоматически.

Пример:

fun onRatingClick(agentMessage: UsedeskMessageAgentText, optionId: String) {
    usedeskChat.sendRating(agentMessage, optionId)
}

10. Отправить неотправленное сообщение заново

fun sendAgain(messageId: String)

11. Удалить неотправленное сообщение

fun removeMessage(messageId: String)

12. Задать черновик сообщения

fun setMessageDraft(messageDraft: UsedeskMessageDraft)

13. Получить черновик сообщения

fun getMessageDraft(): UsedeskMessageDraft

14. Отправить черновик сообщения

fun sendMessageDraft()

15. Загрузить предыдущую страницу сообщений

fun loadPreviousMessagesPage()

16. Загрузить форму сообщения

fun loadForm(messageId: String)

17. Сохранить форму сообщения

fun saveForm(form: UsedeskForm)

18. Отправить форму сообщения

fun send(form: UsedeskForm)

19. Отправить форму обратной связи

fun send(
    offlineForm: UsedeskOfflineForm,
    onResult: (SendOfflineFormResult) -> Unit
)

Пример:

val offlineForm = UsedeskOfflineForm(
    "John Smith",
    "john.smith@email.com",
    "Hello"
)
usedeskChat.send(offlineForm) { result -> ... }


Методы класса UsedeskPreparation

1. Создать чат

fun createChat(
    apiToken: String,
    onResult: (CreateChatResult) -> Unit
)

Пример:

usedeskPreparation.createChat(apiToken) { result -> ... }