Pular para o conteúdo

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.

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.

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.

Inicialize uma vez, no início do ciclo de vida do app:

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

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 history

Mostre a 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(_:). 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.

  • 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 identify sem 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.

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 message

O 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 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.

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.