Быстрый старт
Минимальная интеграция SDK — от подключения до открытия чата.
Что нужно
- Xcode 16+, iOS 14.0+, Swift 5
-
providerUid— уникальный ключ приложения (выдаётся edna при интеграции) - URL сервера — REST, WebSocket, DataStore (выдаются edna) или имя облачного хоста
- SDK подключён — CocoaPods, SPM или вручную (инструкция)
Напишите на support@edna.ru — предоставят providerUid и адреса для вашего окружения.
Вариант 1. Попробовать демо-приложение
Готовый проект для запуска SDK без изменения вашего кода.
-
Склонируйте ChatCenterDemo.
-
Откройте
ChatCenterDemo.xcodeprojв Xcode. -
Отредактируйте файл
Resources/servers.json— укажите ваши данные для подключения:
[
{
"name": "Мой сервер",
"isSelected": true,
"restURL": "https://your-host.edna.ru",
"webSocketURL": "wss://your-host.edna.ru/socket",
"dataStoreURL": "https://your-host.edna.ru/files",
"providerUid": "YOUR_PROVIDER_UID",
"apiVersion": 17
}
]
-
Запустите в симуляторе. Для физического устройства — смените
Bundle Identifierна свой и настройте подпись. -
Выберите сервер и пользователя, нажмите Войти — откроется экран чата.
Серверы и пользователей можно добавлять прямо в интерфейсе демо.
Вариант 2. Минимальная интеграция в ваше приложение
Шаг 1. Подключите SDK
Добавьте фреймворк — варианты в разделе Подключение.
Шаг 2. Инициализируйте SDK
import ChatCenterUI
let transport = ChatTransportConfig(cloudHost: "your-host.edna.ru")
let chatConfig = ChatConfig(transportConfig: transport)
// Обычно в AppDelegate
let chatCenterSDK = ChatCenterUISDK(
providerUid: "YOUR_PROVIDER_UID",
chatConfig: chatConfig
)
Шаг 3. Авторизуйте пользователя
let chatUser = ChatUser(identifier: "unique_user_id", name: "Имя пользователя")
// Делегат до authorize — иначе пропустите счётчик и сетевые ошибки при первой синхронизации
chatCenterSDK.delegate = self
chatCenterSDK.authorize(user: chatUser)
Не используйте номер телефона, email или другие персональные данные в качестве identifier — см. требования к идентификатору.
authorize не возвращает результатМетод не throws и не имеет completion. Явного события «успех» в делегате нет — сетевые ошибки приходят в chatCenterUI(chatCenter:didReceiveNetwork:). Без делегата ошибки не доставляются клиентскому коду. Подробнее — Делегат SDK.
Шаг 4. Откройте чат
do {
let chatController = try chatCenterSDK.getChat()
navigationController?.pushViewController(chatController, animated: true)
} catch let error as ChatCenterUIError {
print("Не удалось открыть чат: \(error)")
}
getChat() бросает типизированный ChatCenterUIError — полный список в Справочнике ошибок.
Что дальше
- Подключение — способы установки SDK
- Внедрение в жизненный цикл — полная схема интеграции с диаграммой
- Инициализация и настройка — детальная конфигурация SDK
- Отображение чата — варианты открытия и навигация
- Уведомления — настройка пуш-уведомлений