SDKs móveis
Os SDKs móveis são o equivalente do widget web para os seus próprios apps: os seus clientes recebem suporte dentro do app, com todo o histórico de conversas e notificações push, e os seus agentes veem essas conversas na mesma Caixa de entrada. Eles não são apps de agente para a sua equipe; esses fazem parte de uma linha de produtos separada.
Plataformas
Seção intitulada “Plataformas”| Plataforma | Linguagem e ambiente | Distribuição | Status |
|---|---|---|---|
| iOS | Swift 5.9+, iOS 15+ | Swift Package Manager, CocoaPods | em desenvolvimento |
| Android | Kotlin 1.9+, Android 8.0 (API 26)+ | Maven Central | em desenvolvimento |
| React Native | encapsula os SDKs nativos | npm | planejado (beta) |
| Flutter | encapsula os SDKs nativos | pub.dev | planejado (beta) |
Os SDKs nativos são a referência; os wrappers são lançados depois deles. Apps para relógio ou TV e SDKs para desktop estão fora do escopo; no desktop, use o widget web.
O que o SDK inclui
Seção intitulada “O que o SDK inclui”Mensagens de texto, anexos, mensagens de voz, imagens e vídeo, sessões anônimas e identificadas, temas, avatar e marca personalizados, 40 idiomas, o concierge de IA, histórico de conversas, contadores de não lidas, notificações push, deep links, clique para ligar pelo discador do telefone, fila offline com sincronização em segundo plano, desbloqueio biométrico do chat, suporte a VoiceOver e TalkBack, modo escuro. Tamanho compilado desejado: 5 MB ou menos por plataforma.
Chamadas WebRTC dentro do app e compartilhamento de tela pelo cliente virão em uma versão posterior. O cobrowse funciona apenas na web: os sistemas operacionais móveis não permitem que um SDK de terceiros observe ou controle a tela.
Interface do SDK
Seção intitulada “Interface do SDK”Inicialize uma vez, no início do ciclo de vida do 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)Identifique o usuário depois que ele fizer login e encerre a sessão quando ele sair:
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 historyMostre a 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(_:). A API pública é segura para a thread principal no iOS e para threads em segundo plano no Android; as conexões caem quando o app vai para segundo plano e são retomadas quando ele volta ao primeiro plano.
Sessões e identidade
Seção intitulada “Sessões e identidade”- Anônima: um ID de sessão do dispositivo, armazenado no keychain ou em preferências criptografadas, sobrevive às atualizações do app e fica vinculado ao dispositivo, não ao usuário. Ele é apagado após 90 dias de inatividade.
- Identificada: após
identify, a sessão é promovida e mesclada com o histórico anônimo do mesmo dispositivo quando não há ambiguidade. A resolução de identidade entre canais segue as regras do grafo de identidade e o consentimento. - Identificação confiável: o seu backend assina um token com os dados do usuário; o SDK o repassa, e o RolChat verifica a assinatura antes de promover a sessão. O
identifysem assinatura funciona, mas tem confiança menor.
A chave de API pública no app é segura por design: ela é restrita ao site e tem limite de requisições.
Notificações push
Seção intitulada “Notificações push”| Plataforma | Transporte | Você fornece |
|---|---|---|
| iOS | APNs | Uma chave de autenticação APNs no painel do RolChat |
| Android | FCM | O JSON da conta de serviço do FCM |
RolChat.shared.setPushToken(deviceToken, type: .apns)if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat messageO texto das notificações é localizado no servidor para o idioma do usuário. As notificações ricas suportam avatar, resposta direto da notificação e marcar como lida. O SDK nunca pede permissão de push por conta própria; chame requestPushPermission() no momento que fizer sentido no seu onboarding. A desativação é feita com setPushEnabled(false) ou nas configurações do sistema; ambas são registradas.
Versionamento e suporte
Seção intitulada “Versionamento e suporte”Versionamento semântico rigoroso. Duas versões principais são suportadas ao mesmo tempo, com um ano para migrar após uma versão principal. As versões secundárias são mensais; as correções de segurança saem imediatamente; as versões principais são anunciadas com três meses de antecedência. Um SDK descontinuado ou sem suporte registra um aviso na inicialização, e o painel o mostra em Integrações.
Privacidade
Seção intitulada “Privacidade”Nenhum rastreamento além do que você ativar, as telas de consentimento usam os padrões nativos da plataforma, e as solicitações de titulares de dados do GDPR, CCPA e LGPD cobrem as sessões do SDK como qualquer outro canal. Os anexos são comprimidos no dispositivo, enviados para URLs assinadas e verificados contra vírus antes que os agentes os vejam.