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.
Plattformen
Abschnitt betitelt „Plattformen“| 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.
Was das SDK umfasst
Abschnitt betitelt „Was das SDK umfasst“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.
SDK-Schnittstelle
Abschnitt betitelt „SDK-Schnittstelle“Einmal initialisieren, früh im Lebenszyklus der 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)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 historyDie Oberfläche anzeigen:
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(_:). 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.
Sitzungen und Identität
Abschnitt betitelt „Sitzungen und Identität“- 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
identifywird 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
identifyfunktioniert, 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.
Push-Benachrichtigungen
Abschnitt betitelt „Push-Benachrichtigungen“| 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 messageDer 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.
Versionierung und Support
Abschnitt betitelt „Versionierung und Support“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.
Datenschutz
Abschnitt betitelt „Datenschutz“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.