Ga naar inhoud

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.

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.

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.

Initialiseer één keer, vroeg in de levenscyclus van de app:

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

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 history

De interface tonen:

RolChat.shared.openChat() // modal
RolChat.shared.openChat(conversationId: id) // a specific conversation
RolChat.shared.openChatInline(view) // inside your own layout
RolChat.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.

  • 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 identify wordt 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 identify werkt 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.

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 message

De 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.

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.

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.