Методы Чата
Все методы актуальны для версии 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 -> ... }