Перейти к основному содержимому
Версия: 5.8.2

Введение

О продукте

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.

Жизненный цикл интеграции

  1. Инициализация — создайте ChatTransportConfig, ChatConfig и экземпляр ChatCenterUISDK, передав providerUid и при необходимости loggerConfig.
  2. Настройка тем и локали — примените ChatTheme, darkTheme, localizationConfig.
  3. Авторизация пользователя — вызовите authorize(user:auth:), когда в приложении доступна устойчивая идентификация клиента.
  4. Открытие чата — получите контроллер через getChat() (метод бросает ChatCenterUIError) и встройте его в навигацию (push/present).
  5. Обработка уведомлений — передайте device token через статический метод ChatCenterUISDK.setDeviceToken(_:) и вызывайте handleNotification(userInfo:), когда нужно открыть чат по пушу.
  6. Завершение сессииlogout() завершает сессию на сервере (пользователь перестаёт получать пуш-уведомления, метод бросает ChatCenterUIError); deauthorizeUser() очищает только локальное состояние без серверного разлогина.

Дополнительно используйте ChatCenterUISDK.isChatCenterNotification(_:), чтобы отличить уведомления SDK от ваших собственных. Подробнее — в разделах Подключение, Инициализация, Отображение чата и Уведомления.

Быстрый поиск: что я хочу сделать

ЗадачаМетод / классРаздел
Инициализировать SDKChatCenterUISDK(providerUid:chatConfig:)Инициализация
Авторизовать пользователяauthorize(user:auth:)Управление пользователем
Открыть чатgetChat()pushViewControllerОтображение чата
Отправить сообщение программноsend(message: .text(“...”))Сообщения
Предзаполнить поле вводаprefill(message:)Управление пользователем
Получить счётчик непрочитанныхgetUnreadMessagesCount(completion:)Сообщения
Подписаться на события SDKdelegate = selfДелегат SDK
Настроить пуш-уведомленияsetDeviceToken(_:)Уведомления
Обработать пушhandleNotification(userInfo:)Уведомления
Кастомизировать внешний видtheme = ChatTheme(...)Дизайн-система
Сменить язык интерфейсаlocalizationConfig = ...Локализация
Включить логированиеChatLoggerConfig(logLevel: .all)Логирование
Выйти (с отпиской от пушей)logout()Управление пользователем
Выйти (только локально)deauthorizeUser()Управление пользователем
Узнать версию SDKChatCenterUISDK.versionИнициализация SDK