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.
Plateformes
Section intitulée « Plateformes »| 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.
Contenu du SDK
Section intitulée « Contenu du SDK »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.
Interface du SDK
Section intitulée « Interface du SDK »Initialisez-le une fois, tôt dans le cycle de vie de l’application :
// 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)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 historyAffichez l’interface :
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(_:). 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.
Sessions et identité
Section intitulée « Sessions et identité »- 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
identifynon 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.
Notifications push
Section intitulée « Notifications push »| 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 messageLe 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.
Versions et support
Section intitulée « Versions et support »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.
Confidentialité
Section intitulée « Confidentialité »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.