Към съдържанието

Мобилни 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 езика, AI консиерж, история на разговорите, значки за непрочетени, 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; връзките прекъсват, когато приложението премине във фонов режим, и се възстановяват при връщане на преден план.

  • Анонимна: идентификатор на сесията на устройството, съхранен в keychain или в криптирани предпочитания, оцелява при обновяване на приложението и е обвързан с устройството, а не с потребителя. Изтрива се след 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) или настройките на ОС; и двете се записват.

Строго семантично версиониране. Поддържат се едновременно две основни версии, с година за миграция след основно издание. Второстепенните издания са месечни; поправките за сигурност излизат веднага; основните издания се обявяват три месеца предварително. Остарял или неподдържан SDK записва предупреждение в лога при стартиране, а таблото го показва в раздел „Интеграции“.

Никакво проследяване извън това, което вие включите; заявките за съгласие използват нативните модели на платформата, а исканията на субекти на данни по GDPR, CCPA и LGPD обхващат сесиите на SDK като всеки друг канал. Прикачените файлове се компресират на устройството, качват се на подписани URL адреси и се сканират за вируси, преди агентите да ги видят.