Zum Inhalt springen

Mobile SDKs

Die Mobile SDKs sind das Gegenstück zum Web-Widget für Ihre eigenen Apps: Ihre Kunden erhalten Support direkt in der App mit vollständigem Konversationsverlauf und Push-Benachrichtigungen, und Ihre Agenten sehen diese Konversationen im selben Posteingang. Es sind keine Agenten-Apps für Ihr Team; diese sind eine eigene Produktlinie.

Plattform Sprache und Laufzeit Verteilung Status
iOS Swift 5.9+, iOS 15+ Swift Package Manager, CocoaPods in Entwicklung
Android Kotlin 1.9+, Android 8.0 (API 26)+ Maven Central in Entwicklung
React Native umhüllt die nativen SDKs npm geplant (Beta)
Flutter umhüllt die nativen SDKs pub.dev geplant (Beta)

Die nativen SDKs sind maßgeblich; die Wrapper erscheinen danach. Apps für Uhren oder TV sowie Desktop-SDKs sind nicht vorgesehen; verwenden Sie auf dem Desktop das Web-Widget.

Textnachrichten, Anhänge, Sprachnachrichten, Bilder und Videos, anonyme und identifizierte Sitzungen, Designanpassung, eigenes Avatar und Branding, 40 Sprachen, der KI-Concierge, Konversationsverlauf, Badges für Ungelesenes, Push-Benachrichtigungen, Deep Links, Click-to-Call über die Telefon-App, Offline-Warteschlange mit Hintergrundsynchronisation, biometrische Entsperrung des Chats, Unterstützung für VoiceOver und TalkBack, dunkler Modus. Angestrebte kompilierte Größe: höchstens 5 MB pro Plattform.

WebRTC-Anrufe in der App und Bildschirmfreigabe durch den Kunden folgen in einem späteren Release. Cobrowsing gibt es nur im Web: Mobile Betriebssysteme erlauben es einem Drittanbieter-SDK nicht, den Bildschirm zu beobachten oder zu steuern.

Einmal initialisieren, früh im Lebenszyklus der 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)

Identifizieren Sie den Nutzer nach der Anmeldung und melden Sie ihn ab, wenn er sich abmeldet:

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

Die Oberfläche anzeigen:

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(_:). Die öffentliche API ist unter iOS sicher im Hauptthread und unter Android sicher in Hintergrundthreads; Verbindungen werden getrennt, wenn die App in den Hintergrund geht, und im Vordergrund wieder aufgenommen.

  • Anonym: Eine Gerätesitzungs-ID, die im Schlüsselbund oder in verschlüsselten Einstellungen gespeichert ist, übersteht App-Updates und ist an das Gerät gebunden, nicht an den Nutzer. Sie wird nach 90 Tagen Inaktivität gelöscht.
  • Identifiziert: Nach identify wird die Sitzung hochgestuft und, wenn eindeutig, mit dem anonymen Verlauf auf demselben Gerät zusammengeführt. Die kanalübergreifende Identitätsauflösung folgt den Regeln des Identitätsgraphen und der Einwilligung.
  • Vertrauenswürdige Identifizierung: Ihr Backend signiert ein Token mit den Claims des Nutzers; das SDK übergibt es, und RolChat prüft die Signatur, bevor die Sitzung hochgestuft wird. Ein unsigniertes identify funktioniert, bietet aber weniger Vertrauen.

Der öffentliche API-Schlüssel in der App ist konstruktionsbedingt unbedenklich: Er ist auf die Website beschränkt und in der Rate begrenzt.

Plattform Transport Sie stellen bereit
iOS APNs Einen APNs-Authentifizierungsschlüssel im RolChat-Dashboard
Android FCM Die JSON-Datei des FCM-Dienstkontos
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

Der Text der Benachrichtigungen wird serverseitig in die Sprache des Nutzers lokalisiert. Erweiterte Benachrichtigungen unterstützen Avatar, Antworten direkt aus der Benachrichtigung und Als-gelesen-markieren. Das SDK fragt nie von sich aus nach der Push-Berechtigung; rufen Sie requestPushPermission() auf, wenn es in Ihr Onboarding passt. Abmelden geht mit setPushEnabled(false) oder über die Systemeinstellungen; beides wird erfasst.

Strikte semantische Versionierung. Zwei Hauptversionen werden gleichzeitig unterstützt, mit einem Jahr Zeit für die Migration nach einem Hauptrelease. Nebenversionen erscheinen monatlich; Sicherheitskorrekturen werden sofort ausgeliefert; Hauptversionen werden drei Monate im Voraus angekündigt. Ein abgekündigtes oder nicht mehr unterstütztes SDK protokolliert beim Start eine Warnung, und das Dashboard zeigt sie unter Integrationen an.

Kein Tracking über das hinaus, was Sie aktivieren; Einwilligungsdialoge nutzen die nativen Muster der Plattform, und Betroffenenanfragen nach DSGVO, CCPA und LGPD umfassen SDK-Sitzungen wie jeden anderen Kanal. Anhänge werden auf dem Gerät komprimiert, an signierte URLs hochgeladen und auf Viren geprüft, bevor Agenten sie sehen.