Методы чата
Методы чата
Отправка сообщения:
Переменная | Тип | Описание |
---|---|---|
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 - это протокол описывающий хранилище сообщений. Вы можете использовать дефолтный или передать свой удовлетворяющий этому протоколу. В хранилище хранятся сообщения которые не смогли отправиться, а так же сообщения которое пользователь начал писать но не отправил.В протоколе есть три метода:
- getMessages() -> [UDMessage]. Возвращает список сохраненных сообщений.
- saveMessages(_ messages: [UDMessage]). Сохраняет массив сообщений в хранилище.
- 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()