Przejdź do głównej zawartości

Mobilne SDK

Mobilne SDK to odpowiednik widżetu webowego dla Twoich własnych aplikacji: klienci otrzymują wsparcie w aplikacji z pełną historią rozmów i powiadomieniami push, a agenci widzą te rozmowy w tej samej skrzynce odbiorczej. Nie są to aplikacje dla agentów z Twojego zespołu; te stanowią osobną linię produktów.

Platforma Język i środowisko Dystrybucja Status
iOS Swift 5.9+, iOS 15+ Swift Package Manager, CocoaPods w trakcie tworzenia
Android Kotlin 1.9+, Android 8.0 (API 26)+ Maven Central w trakcie tworzenia
React Native nakładka na natywne SDK npm planowane (beta)
Flutter nakładka na natywne SDK pub.dev planowane (beta)

Natywne SDK są nadrzędne; nakładki pojawiają się po nich. Aplikacje na zegarki lub telewizory oraz SDK na komputery nie są objęte zakresem; na komputerach używaj widżetu webowego.

Wiadomości tekstowe, załączniki, wiadomości głosowe, obrazy i wideo, sesje anonimowe i zidentyfikowane, motywy, własny awatar i branding, 40 języków, konsjerż AI, historia rozmów, plakietki nieprzeczytanych, powiadomienia push, głębokie linki, dzwonienie jednym dotknięciem przez telefon, kolejkowanie offline z synchronizacją w tle, odblokowanie czatu biometrią, obsługa VoiceOver i TalkBack, tryb ciemny. Docelowy rozmiar po kompilacji: 5 MB lub mniej na platformę.

Połączenia WebRTC w aplikacji i udostępnianie ekranu przez klienta pojawią się w późniejszym wydaniu. Współprzeglądanie działa tylko w przeglądarce: mobilne systemy operacyjne nie pozwalają zewnętrznemu SDK obserwować ekranu ani nim sterować.

Zainicjuj raz, na wczesnym etapie cyklu życia aplikacji:

// 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)

Zidentyfikuj użytkownika po zalogowaniu i wyloguj go, gdy on się wyloguje:

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

Wyświetl interfejs:

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

Wywołania zwrotne: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). Publiczne API jest bezpieczne dla wątku głównego w iOS i dla wątków w tle w Androidzie; połączenia są zrywane, gdy aplikacja przechodzi w tło, i wznawiane po powrocie na pierwszy plan.

  • Anonimowa: identyfikator sesji urządzenia przechowywany w pęku kluczy lub zaszyfrowanych preferencjach przetrwa aktualizacje aplikacji i jest powiązany z urządzeniem, a nie z użytkownikiem. Jest usuwany po 90 dniach nieaktywności.
  • Zidentyfikowana: po identify sesja jest podnoszona i scalana z anonimową historią na tym samym urządzeniu, gdy jest to jednoznaczne. Rozpoznawanie tożsamości między kanałami podlega regułom grafu tożsamości i zgodzie.
  • Zaufana identyfikacja: Twój backend podpisuje token z danymi użytkownika; SDK go przekazuje, a RolChat weryfikuje podpis przed podniesieniem sesji. Niepodpisane identify działa, ale daje niższy poziom zaufania.

Publiczny klucz API w aplikacji jest bezpieczny z założenia: jest ograniczony do strony i objęty limitem żądań.

Platforma Transport Co dostarczasz
iOS APNs Klucz uwierzytelniania APNs w panelu RolChat
Android FCM Plik JSON konta usługi FCM
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

Tekst powiadomień jest lokalizowany po stronie serwera na język użytkownika. Rozszerzone powiadomienia obsługują awatar, odpowiedź z poziomu powiadomienia i oznaczenie jako przeczytane. SDK nigdy samo nie prosi o zgodę na push; wywołaj requestPushPermission(), gdy pasuje to do Twojego procesu wdrożenia. Rezygnacja to setPushEnabled(false) lub ustawienia systemu; oba przypadki są rejestrowane.

Ścisłe wersjonowanie semantyczne. Jednocześnie wspierane są dwie wersje główne, z rokiem na migrację po wydaniu nowej wersji głównej. Wydania pomniejsze są comiesięczne; poprawki bezpieczeństwa są wydawane natychmiast; wydania główne są zapowiadane z trzymiesięcznym wyprzedzeniem. Przestarzałe lub niewspierane SDK zapisuje ostrzeżenie w logu przy starcie, a panel pokazuje je w sekcji Integracje.

Brak śledzenia poza tym, co włączysz, okna zgód korzystają z natywnych wzorców platformy, a wnioski osób, których dane dotyczą, w ramach RODO, CCPA i LGPD obejmują sesje SDK tak jak każdy inny kanał. Załączniki są kompresowane na urządzeniu, przesyłane na podpisane adresy URL i skanowane antywirusowo, zanim zobaczą je agenci.