Sari la conținut

SDK-uri mobile

SDK-urile mobile sunt echivalentul widgetului web pentru propriile tale aplicații: clienții tăi primesc suport în aplicație, cu istoricul complet al conversațiilor și notificări push, iar agenții tăi văd acele conversații în aceeași căsuță de mesaje. Nu sunt aplicații pentru agenții din echipa ta; acelea sunt o linie de produse separată.

Platformă Limbaj și mediu de rulare Distribuție Stadiu
iOS Swift 5.9+, iOS 15+ Swift Package Manager, CocoaPods în dezvoltare
Android Kotlin 1.9+, Android 8.0 (API 26)+ Maven Central în dezvoltare
React Native încapsulează SDK-urile native npm planificat (beta)
Flutter încapsulează SDK-urile native pub.dev planificat (beta)

SDK-urile native sunt cele de referință; învelișurile apar după ele. Aplicațiile pentru ceasuri sau televizoare și SDK-urile pentru desktop nu sunt acoperite; pe desktop folosește widgetul web.

Mesaje text, atașamente, mesaje vocale, imagini și video, sesiuni anonime și identificate, teme, avatar și branding personalizate, 40 de limbi, conciergele AI, istoricul conversațiilor, insigne pentru mesaje necitite, notificări push, deep links, apel cu un clic prin aplicația de telefon, coadă offline cu sincronizare în fundal, deblocare biometrică pentru chat, suport pentru VoiceOver și TalkBack, mod întunecat. Dimensiune compilată vizată: cel mult 5 MB per platformă.

Apelurile WebRTC în aplicație și partajarea ecranului de către client vor veni într-o versiune ulterioară. Cobrowsing-ul este disponibil doar pe web: sistemele de operare mobile nu permit unui SDK terț să observe sau să controleze ecranul.

Inițializează o singură dată, devreme în ciclul de viață al aplicației:

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

Identifică utilizatorul după autentificare și deconectează-l când se deconectează:

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

Afișează interfața:

RolChat.shared.openChat() // modal
RolChat.shared.openChat(conversationId: id) // a specific conversation
RolChat.shared.openChatInline(view) // inside your own layout
RolChat.shared.close()

Callback-uri: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). API-ul public poate fi apelat în siguranță din firul principal pe iOS și dintr-un fir de fundal pe Android; conexiunile se întrerup când aplicația trece în fundal și se reiau când revine în prim-plan.

  • Anonimă: un ID de sesiune al dispozitivului, stocat în keychain sau în preferințe criptate, rezistă la actualizările aplicației și este legat de dispozitiv, nu de utilizator. Este șters după 90 de zile de inactivitate.
  • Identificată: după identify, sesiunea este promovată și unificată cu istoricul anonim de pe același dispozitiv, atunci când nu există ambiguitate. Rezolvarea identității între canale respectă regulile grafului de identitate și consimțământul.
  • Identificare de încredere: backendul tău semnează un token cu datele utilizatorului; SDK-ul îl transmite, iar RolChat verifică semnătura înainte de a promova sesiunea. Un identify nesemnat funcționează, dar cu un nivel de încredere mai scăzut.

Cheia API publică din aplicație este sigură prin design: este limitată la site și are limite de rată.

Platformă Transport Ce furnizezi
iOS APNs O cheie de autentificare APNs în panoul de control RolChat
Android FCM Fișierul JSON al contului de serviciu FCM
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

Textul notificărilor este localizat pe server în limba utilizatorului. Notificările îmbogățite acceptă avatar, răspuns din notificare și marcare ca citit. SDK-ul nu cere niciodată singur permisiunea pentru notificări push; apelează requestPushPermission() când se potrivește cu fluxul tău de onboarding. Renunțarea se face prin setPushEnabled(false) sau din setările sistemului; ambele sunt înregistrate.

Versionare semantică strictă. Sunt acceptate simultan două versiuni majore, cu un an pentru migrare după o versiune majoră. Versiunile minore apar lunar; remedierile de securitate se publică imediat; versiunile majore sunt anunțate cu trei luni înainte. Un SDK depreciat sau neacceptat afișează un avertisment la pornire, iar panoul de control îl semnalează în Integrări.

Nicio urmărire dincolo de ce activezi tu, ecranele de consimțământ folosesc modelele native ale platformei, iar cererile persoanelor vizate conform GDPR, CCPA și LGPD acoperă sesiunile SDK ca pe orice alt canal. Atașamentele sunt comprimate pe dispozitiv, încărcate prin URL-uri semnate și scanate antivirus înainte ca agenții să le vadă.