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

Быстрый старт

Минимальная интеграция SDK — от подключения до открытия чата.

Что нужно

  • Xcode 16+, iOS 14.0+, Swift 5
  • providerUid — уникальный ключ приложения (выдаётся edna при интеграции)
  • URL сервера — REST, WebSocket, DataStore (выдаются edna) или имя облачного хоста
  • SDK подключён — CocoaPods, SPM или вручную (инструкция)
Нет данных для подключения?

Напишите на support@edna.ru — предоставят providerUid и адреса для вашего окружения.

Вариант 1. Попробовать демо-приложение

Готовый проект для запуска SDK без изменения вашего кода.

  1. Склонируйте ChatCenterDemo.

  2. Откройте ChatCenterDemo.xcodeproj в Xcode.

  3. Отредактируйте файл 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
}
]
  1. Запустите в симуляторе. Для физического устройства — смените Bundle Identifier на свой и настройте подпись.

  2. Выберите сервер и пользователя, нажмите Войти — откроется экран чата.

Альтернатива редактированию JSON

Серверы и пользователей можно добавлять прямо в интерфейсе демо.

Вариант 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 — полный список в Справочнике ошибок.

Что дальше