PRIMEIROS PASSOS
Widget SDK
Instalação, configuração e ciclo de vida do SDK 0.2.2.
Instale uma versão fixada
Baixe o SDK e confira seu SHA-256. Sirva o arquivo no seu domínio ou carregue a URL pública versionada. Uma única versão deve ser carregada por página.
<script src="https://support-ai.pontes.uk/widget.v0.2.2.js"></script>Monte na sessão autenticada
Os callbacks abaixo são do seu aplicativo. Eles devem usar a sessão atual, validar as respostas e tratar indisponibilidade. Inicialize somente depois do bootstrap autorizado.
// Depois de autenticar e revalidar a pessoa no seu backend.
// Estes callbacks são implementados pelo seu aplicativo.
const data = await fetchAuthenticatedBootstrap();
const widget = AISupportWidget.init({
apiUrl: 'https://support-ai.pontes.uk',
tenantKey: data.tenantKey,
jwt: data.jwt,
context: data.context,
locale: 'pt-BR',
theme: 'light',
position: 'bottom-right',
onTokenRefresh: async () =>
(await fetchAuthenticatedBootstrap()).jwt,
onOpen: async () =>
widget.updateContext(await fetchAuthorizedContext()),
});
// No logout, troca de pessoa/organização/papel e unmount:
// widget.destroy();Configuração e métodos
tenantKey, jwt, apiUrl e context compõem a configuração de integração. O contexto precisa acompanhar cada novo caso.
| Campo / método | Função |
|---|---|
| theme / position / brandColor | Tema, posição e cor do widget |
| onTokenRefresh | Retorna um novo JWT da mesma identidade |
| onOpen | Atualiza o contexto antes da abertura |
| open() / close() | Abre / fecha a interface |
| updateJwt(jwt) | Atualiza a sessão da mesma pessoa |
| updateContext(context) | Atualiza o contexto do próximo caso |
| destroy() | Aborta requisições e remove instância e persistência local |
React, navegação e PWA
Monte em useEffect com callbacks estáveis e identidade como dependência. Execute destroy no cleanup e imediatamente no logout. Contexto e sessões não devem entrar no cache da PWA ou em ferramentas de replay.
Shadow DOM isola estilos, mas a CSP precisa permitir o carregamento e o estilo usado pelo SDK. Não remova a política inteira para fazê-lo funcionar.