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

Введение

С чего начать

Минимальный путь интеграции SDK: Подключение → Быстрый старт → Авторизация → Отображение чата → Уведомления.

Перед стартом получите у вашего администратора edna Chat Center providerUid и адреса сервера (REST / WebSocket / DataStore или cloudHost) — они доступны на вкладке «Установка» iOS-канала (подробнее). Без них инициализация SDK невозможна. Если у вас нет доступа к админке — напишите в поддержку edna.

О продукте​

SDK edna Chat Center — инструмент для встраивания чата с агентами edna Chat Center в iOS‑приложение. Сообщения, полученные и отправленные через чат, доступны агентам в АРМ edna Chat Center.

Документация для администраторов

Часть параметров SDK (providerUid, домены REST/WebSocket/DataStore, ключи APNs, шаблоны пуш-уведомлений, режим работы канала, опросы, маршрутизация) задаётся не в коде, а в АРМ edna Chat Center. Если параметр отсутствует в этой документации или ведёт себя неожиданно — сверьтесь с административной документацией:

Как работает чат​

Чат открывается по кнопке, настраиваемой на вашей стороне. SDK требует явной авторизации — каждый клиент идентифицируется уникальным неизменным identifier (параметр конструктора ChatUser), благодаря которому история переписки сохраняется между сессиями.

При авторизации можно передать дополнительные атрибуты клиента через параметр data конструктора ChatUser — словарь [String: String] (например, ФИО, email, сегмент, город). Атрибуты отображаются в карточке клиента в АРМ edna Chat Center. Если данные о клиенте стали доступны позже, обновите их через метод updateData(data:). Подробнее — в разделе Управление пользователем.

Кастомизация чата​

Чат кастомизируется через дизайн-систему SDK: цвета, типографика, изображения, стили компонентов и flow-сценарии. Вы можете настроить цветовую схему, шрифты, иконки, вид и текст кнопок, фон, поведение быстрых ответов и другие параметры — но только в рамках документированной поверхности. Полный перечень настраиваемых элементов и токенов — в разделе Дизайн-система.

Не всё в интерфейсе настраивается

SDK предоставляет фиксированный набор токенов и стилей; элементы, не вошедшие в этот набор (например, отдельные системные иконки, размеры некоторых сервисных экранов), кастомизировать нельзя. Часть параметров публичного API в текущей версии не применяется или работает только при определённых условиях — список см. в Известные ограничения. Перед планированием визуальных доработок убедитесь, что нужные параметры присутствуют в дизайн-системе и не помечены как ограничение.

Архитектура и ключевые компоненты​

  • 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, chatConfig и при необходимости loggerConfig.
  2. Настройка тем и локали — примените ChatTheme, darkTheme, localizationConfig.
  3. Авторизация пользователя — вызовите authorize(user:auth:), когда в приложении доступна устойчивая идентификация клиента.
  4. Открытие чата — получите контроллер через getChat() (метод бросает ChatCenterUIError) и встройте его в навигацию (push/present). Чтобы открыть чат по нажатию на пуш — передайте userInfo пуша в getChat(userInfo:).
  5. Обработка уведомлений — передайте device token через статический метод ChatCenterUISDK.setDeviceToken(_:). Чтобы отличить пуш SDK от собственных, используйте ChatCenterUISDK.isChatCenterNotification(_:).
  6. Завершение сессии — logout() завершает сессию на сервере (пользователь перестаёт получать пуш-уведомления; метод бросает ChatCenterUIError.userNotAuthorized, если пользователь не авторизован); deauthorizeUser() очищает только локальное состояние без серверного разлогина.

Подробнее — в разделах Подключение, Инициализация, Отображение чата и Уведомления.

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

ЗадачаМетод / классРаздел
Инициализировать 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

Навигация по документации​

РазделОписание
ПодключениеУстановка через CocoaPods, SPM или вручную
Быстрый стартМинимальная интеграция от инициализации до открытия чата
Инициализация и настройкаChatCenterUISDK, ChatConfig, ChatTransportConfig
Отображение чатаPush / present, открытие по пушу, навигация
УведомленияAPNs, device token, обработка пушей
Жизненный циклПолная схема интеграции и состояния SDK
SwiftUIВстраивание чата в SwiftUI-приложение
Управление пользователемChatUser, ChatAuth, authorize, logout
СообщенияОтправка, prefill, счётчик непрочитанных
Делегат SDKChatCenterUISDKDelegate, события и ошибки
Дизайн-системаТемы, токены, компоненты, flow
ЛокализацияChatLocalizationConfig, переопределение строк
ЛогированиеChatLoggerConfig, уровни логов
Обработка ошибокChatCenterUIError и сетевые ошибки
TroubleshootingСимптомы, чеклисты, типичные ошибки