Методы Чата (4.0.0+)

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

1. Установка конфигурации Чата
fun setConfiguration(chatConfiguration: UsedeskChatConfiguration)


2. Получение конфигурации
fun requireConfiguration(): UsedeskChatConfiguration


3. Инициализация чата IUsedeskChat
fun init(context: Context): IUsedeskChat
fun init(
    context: Context,
    chatConfiguration: UsedeskChatConfiguration
)

Пример:

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

4. Получение экземпляра инициализированного Чата
fun getInstance(): IUsedeskChat


5. Освобождение ресурсов Чата
fun release(force: Boolean = true)

Аргументы:

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


6. Инициализация класса IUsedeskPreparation
fun initPreparation(
    context: Context,
    chatConfiguration: UsedeskChatConfiguration
)

Пример:

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


7. Освобождение класса IUsedeskPreparation
fun initPreparation(
    context: Context,
    chatConfiguration: UsedeskChatConfiguration
) 

Пример:

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


8. Установка фабрики сервиса уведомлений
fun setNotificationsServiceFactory(usedeskNotificationsServiceFactory: UsedeskNotificationsServiceFactory)

Аргументы:

Название Тип Описание
usedeskNofiticationsServiceFactory UsedeskNotificationsServiceFactory Фабрика сервиса

Пример:

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

9. Запуск сервиса уведомлений
fun startService(context: Context)

Аргументы:

Название Тип Описание
context Context Контекст

Пример:

usedeskChat.startService(requireContext())

10. Остановка сервиса уведомлений
fun stopService(context: Context)

Аргументы:

Название Тип Описание
context Context Контекст

Пример:

usedeskChat.stopService(requireContext())

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

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

fun addActionListener(listener: IUsedeskActionListener)

Пример:

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

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

fun removeActionListener(listener: IUsedeskActionListener)

Пример:

usedeskChat.removeActionListener(listener)

3. Проверка на наличие слушателей
fun isNoListeners(): Boolean

Пример:

if (UsedeskKnowledgeBaseSdk.getInstance().isNoListeners()) {...}

4. Отправить текстовое сообщение
fun send(textMessage: String)

Пример:

usedeskChat.send("Hello")

5. Отправить файлы
fun send(usedeskFileInfoList: List<UsedeskFileInfo>)

Пример:

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

6. Отправить неотправленное сообщение заново
fun sendAgain(messageId: Long)


7. Удалить неотправленное сообщение
fun removeMessage(messageId: Long) 

8. Задать шаблон сообщения
fun setMessageDraft(messageDraft: UsedeskMessageDraft)
9. Получить шаблон сообщения
fun getMessageDraft(): UsedeskMessageDraft

10. Отправить шаблон сообщения
fun sendMessageDraft()

11. Загрузить предыдущую страницу сообщений
fun loadPreviousMessagesPage()

12. Загрузить форму сообщения
fun loadForm(messageId: Long)


12. Сохранить форму сообщения
fun saveForm(form: UsedeskForm)

13. Отправить форму сообщения
fun send(form: UsedeskForm)

14. Поставить оценку
fun send(message: UsedeskMessageAgentText, feedback: UsedeskFeedback)

Аргументы:

Название Тип Описание
agentMessage UsedeskMessageAgentText Сообщение агента, которому ставится отзыв
feedback UsedeskFeedback Оценка отзыва (LIKE, DISLIKE)

Пример:

fun onFeedbackClick(agentMessage: UsedeskMessageAgentText, like: Boolean){
    val feedback = if (like){
        UsedeskFeedback.LIKE
    } else {
        UsedeskFeedback.DISLIKE
    }
    usedeskChat.send(agentMessage, feedback)
}

15. Отправить форму обратной связи
fun send(
    offlineForm: UsedeskOfflineForm,
    onResult: (SendOfflineFormResult) -> Unit
)

Пример:

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

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

1. Создать чат
fun createChat(
    apiToken: String,
    onResult: (CreateChatResult) -> Unit
)

Пример:

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