Методы чата

Методы чата

Отправка сообщения:

Переменная Тип Описание
Message String текст сообщения
MessageId String свой идентификатор сообщения. В полученном сообщении, после отправки с идентификатором, параметр loadingMessageId будет заполнен переданным идентификатором. Так вы сможете сопоставить отправленные и полученные сообщения.

Пример:

usedesk.sendMessage("привет как дела?", messageId: "123456789")
    

Отправка файла:

Переменная Тип Описание
fileName String имя файла
data Data файл в формате Data
MessageId String? свой идентификатор сообщения. В полученном сообщении, после отправки с идентификатором, параметр loadingMessageId будет заполнен переданным идентификатором. Так вы сможете сопоставить отправленные и полученные сообщения.
ProgressBlock UDProgressUploadBlock? замыкание в котором передается Progress для отслеживания загрузки файла.

Несколько файлов отправляются отдельными сообщениями

Пример:

usedesk.sendFile(fileName: "file.png", data: imageData, messageId: "123456789", status: {success, error in })
    

Блок возвращает следующие параметры:

Тип переменной Описание
Bool статус отправки
String описание ошибки

Метод usedesk.sendMessage(_, withFileName: , fileType: , contentBase64: ) удален

История сообщений в текущем чате:

История сообщений доступна после инициализации чата в параметре historyMess = [UDMessage]
UDMessage - объект хранящий всю информацию о сообщении

Пример:

usedesk.historyMess
    

Получение следующей партии сообщений:

С помощью этого метода можно получать следующие страницы чата, реализовавшая пагинация истории сообщений
idComment - айди сообщения после которого нужна следующая партия сообщений.

Пример:

usedesk.getMessages(idComment: idComment, newMessagesBlock: newMessagesBlock, errorBlock: errorBlock)
    
Максимальное количество прикрепленных файлов:

Можно изменять максимальное количество прикрепленных файлов с помощью переменной maxCountAssets

Пример:

usedesk.maxCountAssets = 5
    

Новое входящее сообщение:

Пример:

usedesk.newMessageBlock { success, message in
}
    

Блок возвращает следующие параметры:

Тип переменной Описание
(UDMessage?) -> Void новое сообщение

Отправление оценки CSI:

Переменная Тип Описание
status Bool true - like, false - dislike
message_id Int Идентификатор сообщения (UDMessage.messageId) в котором поставлена оценка.

Пример:

usedesk!.sendMessageFeedBack(true)
    
Блок возвращающий ошибку соединения:

Пример:

usedesk.errorBlock = {errors in
}
    

Операторы завершили разговор

Блок возвращает следующие параметры:

Переменная Тип Описание
message UDMessage сообщение с type 4 – пользователь завершил разговор

Пример:

usedesk.feedbackMessageBlock = { message in
}
    

Другие методы

Статус соединения:

Возвращает статус соединения

usedesk.connectBlock = { bool in
}
    
Конец сессии:

Полностью очищает все параметры сдк, прекращает работу вебсокетов.

usedesk.releaseChat()
    
Закрытие чата:

Очищает историю сообщений, прекращает работу вебсокетов.

usedesk.closeChat()
    

Хранилище сообщений UDStorage

UDStorage - это протокол описывающий хранилище сообщений. Вы можете использовать дефолтный или передать свой удовлетворяющий этому протоколу. В хранилище хранятся сообщения которые не смогли отправиться, а так же сообщения которое пользователь начал писать но не отправил.
В протоколе есть три метода:
  1. getMessages() -> [UDMessage]. Возвращает список сохраненных сообщений.
  2. saveMessages(_ messages: [UDMessage]). Сохраняет массив сообщений в хранилище.
  3. removeMessage(_ messages: [UDMessage]). Удаляет массив сообщений из хранилища.

Локализация

СДК поддерживает четыре языка: русский, английский, португальский, испанский. Можно передать свой языковой словарь. Посмотреть ключи и текущие локали можно в файле UDLocalizeManager. Если вы передаете свой словарь, он должен содержать все ключи дефолтных локализаций.

Настройки

Можно ограничить отправляемые клиентом типы контента, например запретить отправку видео или фото или и то и другое. Для этого нужно выбрать значение соответствующей переменной: isSupportedAttachmentOnlyPhoto(Bool) или isSupportedAttachmentOnlyVideo(Bool).

Пример:

usedesk.isSupportedAttachmentOnlyPhoto = true
    

Есть параметр isOpenSDKUI, показывающий открыты ли сейчас окна СДК.

Пример:

usedesk.isOpenSDKUI
        

Можно получить контроллер чата для самостоятельного отображения его на экране (Например в UITabBar). Для этого надо в методе инициализации чата указать параметр isPresentDefaultControllers = false и после удачной инициализации обратиться к методу chatViewController() который возвращает UIViewController?

Пример:

usedesk.chatViewController()
    


Можно получить навигейшн базы знаний для самостоятельного отображения базы знаний на экране(Например в UITabBar). Для этого надо в методе инициализации чата указать параметр isPresentDefaultControllers = false и после удачной инициализации обратиться к методу baseNavigationController() который возвращает UINavigationController?

Пример:

usedesk.baseNavigationController()