Перейти к основному содержимому
Версия: 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Симптомы, чеклисты, типичные ошибки