Методы чата
Методы чата
Отправка сообщения:
| Переменная | Тип | Описание |
|---|---|---|
| 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()