Мобільні SDK
Мобільні SDK - це відповідник вебвіджета для ваших власних застосунків: клієнти отримують підтримку всередині застосунку з повною історією діалогів і push-сповіщеннями, а ваші агенти бачать ці діалоги в тій самій єдиній скриньці. Це не застосунки для агентів вашої команди; вони належать до окремої лінійки продуктів.
Платформи
Section titled “Платформи”| Платформа | Мова та середовище виконання | Поширення | Статус |
|---|---|---|---|
| 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 не входять у плани; для десктопа використовуйте вебвіджет.
Що входить до SDK
Section titled “Що входить до SDK”Текстові повідомлення, вкладення, голосові повідомлення, зображення та відео, анонімні й ідентифіковані сесії, теми оформлення, власний аватар і брендинг, 40 мов, ШІ-консьєрж, історія діалогів, значки непрочитаного, push-сповіщення, глибокі посилання, дзвінок в один дотик через номеронабирач телефону, офлайн-черга з фоновою синхронізацією, біометричне розблокування чату, підтримка VoiceOver і TalkBack, темний режим. Цільовий розмір після компіляції: не більше 5 MB на платформу.
Дзвінки WebRTC у застосунку та демонстрація екрана з боку клієнта з’являться в одному з наступних релізів. Спільний перегляд (cobrowse) доступний лише у вебі: мобільні операційні системи не дозволяють сторонньому SDK спостерігати за екраном чи керувати ним.
Інтерфейс SDK
Section titled “Інтерфейс SDK”Ініціалізуйте один раз, на початку життєвого циклу застосунку:
// iOSlet 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)// Androidval 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() // modalRolChat.shared.openChat(conversationId: id) // a specific conversationRolChat.shared.openChatInline(view) // inside your own layoutRolChat.shared.close()Колбеки: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). Публічний API безпечний для головного потоку в iOS і для фонових потоків в Android; з’єднання розриваються, коли застосунок переходить у фон, і відновлюються після повернення на передній план.
Сесії та ідентифікація
Section titled “Сесії та ідентифікація”- Анонімна: ідентифікатор сесії пристрою зберігається у зв’язці ключів або в зашифрованих налаштуваннях, переживає оновлення застосунку й прив’язаний до пристрою, а не до користувача. Його видаляють після 90 днів неактивності.
- Ідентифікована: після
identifyсесія підвищується та об’єднується з анонімною історією на тому самому пристрої, якщо це однозначно. Зіставлення особи між каналами відбувається за правилами графа ідентичності та згоди. - Довірена ідентифікація: ваш бекенд підписує токен із даними користувача; SDK передає його, і RolChat перевіряє підпис перед підвищенням сесії. Непідписаний
identifyпрацює, але з нижчим рівнем довіри.
Публічний API-ключ у застосунку безпечний за своєю конструкцією: він обмежений сайтом і лімітами запитів.
Push-сповіщення
Section titled “Push-сповіщення”| Платформа | Транспорт | Що ви надаєте |
|---|---|---|
| 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 пише попередження в лог під час запуску, а панель керування показує його в розділі «Інтеграції».
Конфіденційність
Section titled “Конфіденційність”Жодного відстеження понад те, що ви ввімкнули; запити згоди використовують нативні шаблони платформи, а запити суб’єктів даних за GDPR, CCPA і LGPD поширюються на сесії SDK так само, як на будь-який інший канал. Вкладення стискаються на пристрої, завантажуються за підписаними URL і перевіряються на віруси до того, як їх побачать агенти.