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.
Platformy
Dział zatytułowany „Platformy”| 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.
Co zawiera SDK
Dział zatytułowany „Co zawiera SDK”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ć.
Interfejs SDK
Dział zatytułowany „Interfejs SDK”Zainicjuj raz, na wczesnym etapie cyklu życia aplikacji:
// 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)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 historyWyświetl interfejs:
RolChat.shared.openChat() // modalRolChat.shared.openChat(conversationId: id) // a specific conversationRolChat.shared.openChatInline(view) // inside your own layoutRolChat.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.
Sesje i tożsamość
Dział zatytułowany „Sesje i tożsamość”- 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
identifysesja 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
identifydział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ń.
Powiadomienia push
Dział zatytułowany „Powiadomienia push”| 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 messageTekst 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.
Wersjonowanie i wsparcie
Dział zatytułowany „Wersjonowanie i wsparcie”Ś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.
Prywatność
Dział zatytułowany „Prywatność”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.