Mobiele SDK's
De mobiele SDK’s zijn het equivalent van de webwidget voor je eigen apps: je klanten krijgen support in de app met de volledige gespreksgeschiedenis en pushmeldingen, en je agents zien die gesprekken in hetzelfde Postvak IN. Het zijn geen agentapps voor je team; dat is een aparte productlijn.
Platforms
Section titled “Platforms”| Platform | Taal en runtime | Distributie | Status |
|---|---|---|---|
| iOS | Swift 5.9+, iOS 15+ | Swift Package Manager, CocoaPods | in ontwikkeling |
| Android | Kotlin 1.9+, Android 8.0 (API 26)+ | Maven Central | in ontwikkeling |
| React Native | omhulsel rond de native SDK’s | npm | gepland (bèta) |
| Flutter | omhulsel rond de native SDK’s | pub.dev | gepland (bèta) |
De native SDK’s zijn leidend; de omhulsels verschijnen daarna. Apps voor horloges of tv’s en desktop-SDK’s vallen buiten de scope; gebruik voor desktop de webwidget.
Wat de SDK bevat
Section titled “Wat de SDK bevat”Tekstberichten, bijlagen, spraakberichten, afbeeldingen en video, anonieme en geïdentificeerde sessies, thema’s, eigen avatar en huisstijl, 40 talen, de AI-concierge, gespreksgeschiedenis, badges voor ongelezen berichten, pushmeldingen, deeplinks, bellen met één tik via de telefoon-app, een offline wachtrij met synchronisatie op de achtergrond, biometrische ontgrendeling van de chat, ondersteuning voor VoiceOver en TalkBack, donkere modus. Beoogde gecompileerde grootte: 5 MB of minder per platform.
WebRTC-gesprekken in de app en schermdelen door de klant komen in een latere release. Cobrowsing werkt alleen op het web: mobiele besturingssystemen staan niet toe dat een SDK van derden het scherm observeert of bedient.
De SDK-interface
Section titled “De SDK-interface”Initialiseer één keer, vroeg in de levenscyclus van de app:
// 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)Identificeer de gebruiker nadat die is ingelogd, en meld af wanneer die uitlogt:
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 historyDe interface tonen:
RolChat.shared.openChat() // modalRolChat.shared.openChat(conversationId: id) // a specific conversationRolChat.shared.openChatInline(view) // inside your own layoutRolChat.shared.close()Callbacks: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). De openbare API is op iOS veilig op de hoofdthread en op Android veilig op achtergrondthreads; verbindingen worden verbroken wanneer de app naar de achtergrond gaat en hervat wanneer hij weer op de voorgrond komt.
Sessies en identiteit
Section titled “Sessies en identiteit”- Anoniem: een sessie-ID van het apparaat, opgeslagen in de sleutelhanger of in versleutelde voorkeuren, overleeft app-updates en is gekoppeld aan het apparaat, niet aan de gebruiker. Na 90 dagen inactiviteit wordt hij verwijderd.
- Geïdentificeerd: na
identifywordt de sessie opgewaardeerd en, als dat eenduidig is, samengevoegd met de anonieme geschiedenis op hetzelfde apparaat. Identiteitsherkenning over kanalen heen volgt de regels van de identiteitsgraaf en de toestemming. - Vertrouwde identificatie: je backend ondertekent een token met de claims van de gebruiker; de SDK geeft het door en RolChat verifieert de handtekening voordat de sessie wordt opgewaardeerd. Een niet-ondertekende
identifywerkt ook, maar geeft minder vertrouwen.
De openbare API-sleutel in de app is veilig door zijn ontwerp: hij is afgebakend tot de site en in snelheid beperkt.
Pushmeldingen
Section titled “Pushmeldingen”| Platform | Transport | Wat jij aanlevert |
|---|---|---|
| iOS | APNs | Een APNs-authenticatiesleutel in het RolChat-dashboard |
| Android | FCM | De JSON van het FCM-serviceaccount |
RolChat.shared.setPushToken(deviceToken, type: .apns)if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat messageDe tekst van meldingen wordt op de server gelokaliseerd naar de taal van de gebruiker. Uitgebreide meldingen ondersteunen een avatar, antwoorden vanuit de melding en markeren als gelezen. De SDK vraagt nooit uit zichzelf om toestemming voor push; roep requestPushPermission() aan wanneer het in je onboarding past. Afmelden gaat met setPushEnabled(false) of via de instellingen van het besturingssysteem; beide worden vastgelegd.
Versiebeheer en ondersteuning
Section titled “Versiebeheer en ondersteuning”Strikte semantische versienummering. Twee hoofdversies worden tegelijk ondersteund, met een jaar om te migreren na een hoofdrelease. Kleine releases verschijnen maandelijks; beveiligingsfixes direct; hoofdreleases worden drie maanden van tevoren aangekondigd. Een uitgefaseerde of niet meer ondersteunde SDK logt bij het opstarten een waarschuwing en het dashboard toont die onder Integraties.
Privacy
Section titled “Privacy”Geen tracking buiten wat je zelf inschakelt, toestemmingsschermen gebruiken de native patronen van het platform, en verzoeken van betrokkenen onder de AVG, de CCPA en de LGPD dekken SDK-sessies net als elk ander kanaal. Bijlagen worden op het apparaat gecomprimeerd, naar ondertekende URL’s geüpload en op virussen gescand voordat agents ze zien.