Введение
О продукте
SDK edna Chat Center — инструмент для встраивания чата с агентами edna Chat Center в iOS‑приложение. Сообщения, полученные и отправленные через чат, доступны агентам в АРМ edna Chat Center.
Как работает чат
Чат открывается по кнопке, настраиваемой на вашей стороне. Клиенты, которые пишут в чат в мобильном приложении, всегда являются авторизованными для edna Chat Center — edna получает их уникальный внешний идентификатор (ChatUser.identifier), который не меняется от обращения к обращению. Таким образом, и ваши агенты, которые общаются с клиентами, и сами клиенты всегда смогут отследить историю обращений и переписки.
При авторизации пользователя в SDK вы можете передать дополнительную информацию о клиенте в параметре ChatUser.data — произвольные атрибуты в формате [String: String] (например, ФИО, email, сегмент, город, наличие карты лояльности). Эти данные передаются на сервер в поле clientData и отображаются в карточке клиента в АРМ edna Chat Center. Агенты смогут использовать полученную информацию для повышения качества консультации. Если данные о клиенте стали доступны после авторизации, их можно обновить через метод updateData(data:). Подробнее — в разделе Управление пользователем.
Кастомизация чата
Чат полностью кастомизируем: вы можете настроить цветовую схему, размер, вид и текст кнопок, текст приветствия, задний фон, убрать или добавить кнопки, включить или выключить быстрые ответы и так далее. Таким образом, вы можете подстроить чат под любой внешний вид, чтобы он полностью подходил под дизайн вашего приложения и отвечал требованиям вашего бизнеса.
Архитектура и ключевые компоненты
ChatCenterUISDK— фасад SDK, который управляет жизненным циклом, хранит ссылку на конфигурацию и темы.ChatCenterUISDKDelegate— протокол для обработки событий SDK (изменение счётчика непрочитанных, сетевые ошибки, обработка ссылок, логирование).ChatConfig— модель бизнес-настроек (функции чата, поиск, голосовые сообщения, работа сокета).ChatTransportConfig/ChatNetworkConfig— параметры подключения (REST, WebSocket, datastore, SSL pinning).ChatThemeиChatComponents— дизайн‑система: цвета, типографика, изображения и точечные стили экранов.ChatLoggerConfig,ChatLocalizationConfig— вспомогательные модели для логирования и локализации.
Полное описание классов доступно в API-справочнике docs-sdk.edna.ru/ios-docs/index.html.
Жизненный цикл интеграции
- Инициализация — создайте
ChatTransportConfig,ChatConfigи экземплярChatCenterUISDK, передавproviderUidи при необходимостиloggerConfig. - Настройка тем и локали — примените
ChatTheme,darkTheme,localizationConfig. - Авторизация пользователя — вызовите
authorize(user:auth:), когда в приложении доступна устойчивая идентификация клиента. - Открытие чата — получите контроллер через
getChat()(метод бросаетChatCenterUIError) и встройте его в навигацию (push/present). - Обработка уведомлений — передайте device token через статический метод
ChatCenterUISDK.setDeviceToken(_:)и вызывайтеhandleNotification(userInfo:), когда нужно открыть чат по пушу. - Завершение сессии —
logout()завершает сессию на сервере (пользователь перестаёт получать пуш-уведомления, метод бросаетChatCenterUIError);deauthorizeUser()очищает только локальное состояние без серверного разлогина.
Дополнительно используйте ChatCenterUISDK.isChatCenterNotification(_:), чтобы отличить уведомления SDK от ваших собственных. Подробнее — в разделах Подключение, Инициализация, Отображение чата и Уведомления.
Быстрый поиск: что я хочу сделать
| Задача | Метод / класс | Раздел |
|---|---|---|
| Инициализировать SDK | ChatCenterUISDK(providerUid:chatConfig:) | Инициализация |
| Авторизовать пользователя | authorize(user:auth:) | Управление пользователем |
| Открыть чат | getChat() → pushViewController | Отображение чата |
| Отправить сообщение программно | send(message: .text(“...”)) | Сообщения |
| Предзаполнить поле ввода | prefill(message:) | Управление пользователем |
| Получить счётчик непрочитанных | getUnreadMessagesCount(completion:) | Сообщения |
| Подписаться на события SDK | delegate = self | Делегат SDK |
| Настроить пуш-уведомления | setDeviceToken(_:) | Уведомления |
| Обработать пуш | handleNotification(userInfo:) | Уведомления |
| Кастомизировать внешний вид | theme = ChatTheme(...) | Дизайн-система |
| Сменить язык интерфейса | localizationConfig = ... | Локализация |
| Включить логирование | ChatLoggerConfig(logLevel: .all) | Логирование |
| Выйти (с отпиской от пушей) | logout() | Управление пользователем |
| Выйти (только локально) | deauthorizeUser() | Управление пользователем |
| Узнать версию SDK | ChatCenterUISDK.version | Инициализация SDK |