Перейти до вмісту

Мобільні SDK

Мобільні SDK - це відповідник вебвіджета для ваших власних застосунків: клієнти отримують підтримку всередині застосунку з повною історією діалогів і push-сповіщеннями, а ваші агенти бачать ці діалоги в тій самій єдиній скриньці. Це не застосунки для агентів вашої команди; вони належать до окремої лінійки продуктів.

Платформа Мова та середовище виконання Поширення Статус
iOS Swift 5.9+, iOS 15+ Swift Package Manager, CocoaPods у розробці
Android Kotlin 1.9+, Android 8.0 (API 26)+ Maven Central у розробці
React Native обгортка над нативними SDK npm заплановано (бета)
Flutter обгортка над нативними SDK pub.dev заплановано (бета)

Нативні SDK є основними; обгортки виходять після них. Застосунки для годинників і ТБ, а також десктопні SDK не входять у плани; для десктопа використовуйте вебвіджет.

Текстові повідомлення, вкладення, голосові повідомлення, зображення та відео, анонімні й ідентифіковані сесії, теми оформлення, власний аватар і брендинг, 40 мов, ШІ-консьєрж, історія діалогів, значки непрочитаного, push-сповіщення, глибокі посилання, дзвінок в один дотик через номеронабирач телефону, офлайн-черга з фоновою синхронізацією, біометричне розблокування чату, підтримка VoiceOver і TalkBack, темний режим. Цільовий розмір після компіляції: не більше 5 MB на платформу.

Дзвінки WebRTC у застосунку та демонстрація екрана з боку клієнта з’являться в одному з наступних релізів. Спільний перегляд (cobrowse) доступний лише у вебі: мобільні операційні системи не дозволяють сторонньому SDK спостерігати за екраном чи керувати ним.

Ініціалізуйте один раз, на початку життєвого циклу застосунку:

// iOS
let config = RolChatConfig(
siteId: "site_abc123",
apiKey: "pk_live_…", // public key - safe to ship in the app
region: .eu, // eu / us
theme: RolChatTheme(primaryColor: .blue)
)
RolChat.shared.initialize(config: config)
// Android
val config = RolChatConfig.Builder()
.siteId("site_abc123")
.apiKey("pk_live_…")
.region(Region.EU)
.theme(RolChatTheme(primaryColor = Color.Blue))
.build()
RolChat.initialize(context, config)

Ідентифікуйте користувача після входу та виконуйте вихід разом із ним:

RolChat.shared.identify(userId: "user_12345", email: "alice@example.com", name: "Alice",
metadata: ["tier": "gold"])
RolChat.shared.logout() // on host-app sign-out, or the next user sees this history

Покажіть інтерфейс:

RolChat.shared.openChat() // modal
RolChat.shared.openChat(conversationId: id) // a specific conversation
RolChat.shared.openChatInline(view) // inside your own layout
RolChat.shared.close()

Колбеки: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). Публічний API безпечний для головного потоку в iOS і для фонових потоків в Android; з’єднання розриваються, коли застосунок переходить у фон, і відновлюються після повернення на передній план.

Сесії та ідентифікація

Section titled “Сесії та ідентифікація”
  • Анонімна: ідентифікатор сесії пристрою зберігається у зв’язці ключів або в зашифрованих налаштуваннях, переживає оновлення застосунку й прив’язаний до пристрою, а не до користувача. Його видаляють після 90 днів неактивності.
  • Ідентифікована: після identify сесія підвищується та об’єднується з анонімною історією на тому самому пристрої, якщо це однозначно. Зіставлення особи між каналами відбувається за правилами графа ідентичності та згоди.
  • Довірена ідентифікація: ваш бекенд підписує токен із даними користувача; SDK передає його, і RolChat перевіряє підпис перед підвищенням сесії. Непідписаний identify працює, але з нижчим рівнем довіри.

Публічний API-ключ у застосунку безпечний за своєю конструкцією: він обмежений сайтом і лімітами запитів.

Платформа Транспорт Що ви надаєте
iOS APNs Ключ автентифікації APNs у панелі керування RolChat
Android FCM JSON сервісного акаунта FCM
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

Текст сповіщень локалізується на сервері мовою користувача. Розширені сповіщення підтримують аватар, відповідь просто зі сповіщення та позначку про прочитання. SDK ніколи сам не запитує дозвіл на push-сповіщення; викличте requestPushPermission(), коли це доречно у вашому онбордингу. Відмовитися можна через setPushEnabled(false) або налаштування ОС; обидва варіанти фіксуються.

Версіонування та підтримка

Section titled “Версіонування та підтримка”

Суворе семантичне версіонування. Одночасно підтримуються дві мажорні версії, на міграцію після мажорного релізу дається рік. Мінорні релізи виходять щомісяця; виправлення безпеки - негайно; про мажорні релізи оголошують за три місяці. Застарілий або непідтримуваний SDK пише попередження в лог під час запуску, а панель керування показує його в розділі «Інтеграції».

Жодного відстеження понад те, що ви ввімкнули; запити згоди використовують нативні шаблони платформи, а запити суб’єктів даних за GDPR, CCPA і LGPD поширюються на сесії SDK так само, як на будь-який інший канал. Вкладення стискаються на пристрої, завантажуються за підписаними URL і перевіряються на віруси до того, як їх побачать агенти.