Aller au contenu

SDK mobiles

Les SDK mobiles sont l’équivalent du widget web pour vos propres applications : vos clients bénéficient d’un support intégré à l’application avec l’historique complet des conversations et des notifications push, et vos agents voient ces conversations dans la même Boîte de réception. Il ne s’agit pas d’applications pour les agents de votre équipe ; celles-ci forment une gamme de produits distincte.

Plateforme Langage et environnement Distribution État
iOS Swift 5.9+, iOS 15+ Swift Package Manager, CocoaPods en développement
Android Kotlin 1.9+, Android 8.0 (API 26)+ Maven Central en développement
React Native encapsule les SDK natifs npm prévu (bêta)
Flutter encapsule les SDK natifs pub.dev prévu (bêta)

Les SDK natifs font référence ; les surcouches sont publiées après eux. Les applications pour montres ou téléviseurs et les SDK pour ordinateur ne sont pas couverts ; sur ordinateur, utilisez le widget web.

Messagerie texte, pièces jointes, messages vocaux, images et vidéo, sessions anonymes et identifiées, thèmes, avatar et image de marque personnalisés, 40 langues, le concierge IA, l’historique des conversations, les badges de non-lus, les notifications push, les liens profonds, l’appel en un clic via le composeur du téléphone, la file d’attente hors ligne avec synchronisation en arrière-plan, le déverrouillage biométrique du chat, la prise en charge de VoiceOver et TalkBack, le mode sombre. Taille compilée visée : 5 MB ou moins par plateforme.

Les appels WebRTC dans l’application et le partage d’écran par le client arriveront dans une version ultérieure. Le co-browsing est réservé au web : les systèmes d’exploitation mobiles ne permettent pas à un SDK tiers d’observer ou de contrôler l’écran.

Initialisez-le une fois, tôt dans le cycle de vie de l’application :

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

Identifiez l’utilisateur après sa connexion, et déconnectez-le lorsqu’il se déconnecte :

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

Affichez l’interface :

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(_:). L’API publique peut être appelée en toute sécurité depuis le thread principal sur iOS et depuis un thread d’arrière-plan sur Android ; les connexions sont coupées lorsque l’application passe en arrière-plan et reprennent au premier plan.

  • Anonyme : un identifiant de session d’appareil stocké dans le trousseau ou dans des préférences chiffrées survit aux mises à jour de l’application et est lié à l’appareil, pas à l’utilisateur. Il est purgé après 90 jours d’inactivité.
  • Identifiée : après identify, la session est promue et fusionnée avec l’historique anonyme du même appareil lorsqu’il n’y a pas d’ambiguïté. La résolution d’identité entre canaux suit les règles du graphe d’identité et le consentement.
  • Identification de confiance : votre backend signe un jeton contenant les informations de l’utilisateur ; le SDK le transmet et RolChat vérifie la signature avant de promouvoir la session. Un identify non signé fonctionne, mais avec un niveau de confiance moindre.

La clé d’API publique présente dans l’application est sûre par conception : elle est limitée au site et soumise à des quotas.

Plateforme Transport Ce que vous fournissez
iOS APNs Une clé d’authentification APNs dans le tableau de bord RolChat
Android FCM Le JSON du compte de service FCM
RolChat.shared.setPushToken(deviceToken, type: .apns)
if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat message

Le texte des notifications est localisé côté serveur dans la langue de l’utilisateur. Les notifications enrichies prennent en charge l’avatar, la réponse depuis la notification et le marquage comme lu. Le SDK ne demande jamais de lui-même l’autorisation d’envoyer des notifications push ; appelez requestPushPermission() au moment qui convient à votre parcours d’accueil. La désactivation passe par setPushEnabled(false) ou par les réglages du système ; les deux sont enregistrées.

Versionnage sémantique strict. Deux versions majeures sont prises en charge en même temps, avec un an pour migrer après une version majeure. Les versions mineures sont mensuelles ; les correctifs de sécurité sont publiés immédiatement ; les versions majeures sont annoncées trois mois à l’avance. Un SDK obsolète ou non pris en charge affiche un avertissement au démarrage et le tableau de bord le signale dans Intégrations.

Aucun suivi au-delà de ce que vous activez, des écrans de consentement qui suivent les conventions natives de la plateforme, et les demandes des personnes concernées au titre du RGPD, du CCPA et de la LGPD couvrent les sessions du SDK comme n’importe quel autre canal. Les pièces jointes sont compressées sur l’appareil, envoyées vers des URL signées et analysées par un antivirus avant que les agents ne les voient.