Tutorial: Personalizando o tamanho e a posição do bate-papo na Web
Este tutorial mostra como você pode alterar o tamanho e a posição do bate-papo na Web renderizando-o em um elemento personalizado.
Para obter uma versão completa e funcional do exemplo descrito neste tutorial, consulte Elementos personalizados para chat na web com assistente de IA.
Por padrão, a interface de bate-papo na Web em seu site é renderizada em um elemento " div do host que é estilizado para aparecer em um local fixo na página. Se quiser alterar o tamanho ou a posição do bate-papo na Web, você poderá especificar um elemento personalizado como o local do host para o bate-papo na Web. Esse elemento de host é usado como local para a interface principal do bate-papo na Web e para o inicializador do bate-papo na Web (a menos que você esteja usando um inicializador personalizado).
Ao usar um elemento personalizado, você também assume o controle de mostrar e ocultar o bate-papo na Web quando ele é aberto ou fechado (como quando o cliente clica no ícone do iniciador ou no botão minimizar). Isso lhe dá a oportunidade de aplicar efeitos adicionais, como animações de abertura e fechamento. Você pode controlar a exibição e o ocultamento da janela principal usando as funções ` addClassName( )` e ` removeClassName( )`.
Para usar um elemento personalizado, siga estas etapas:
No código do seu site, defina o elemento personalizado no qual deseja que o bate-papo na Web seja renderizado. Há muitas maneiras de fazer isso, dependendo da estrutura que você estiver usando. Um exemplo simples é definir um elemento HTML vazio com um ID:
<div id="WebChatContainer"></div>
Obtenha uma referência ao seu elemento personalizado para que você possa fazer referência a ele na configuração do bate-papo na Web. Para obter uma referência, use o mecanismo que fizer sentido para a biblioteca que estiver usando. Por exemplo, você pode salvar a referência retornada de '
document.createElement()ou pode usar uma função de consulta para procurar o elemento no DOM. Este exemplo procura o elemento usando o ID que atribuímos a ele:
const customElement = document.querySelector('#WebChatContainer');
No script de incorporação do bate-papo na Web, defina a propriedade '
element, especificando a referência ao seu elemento personalizado.
window.watsonAssistantChatOptions = {
integrationID: "YOUR_INTEGRATION_ID",
region: "YOUR_REGION",
serviceInstanceID: "YOUR_SERVICE_INSTANCE_ID",
// The important piece.
element: customElement,
onLoad: function(instance) {
instance.render();
}
};
Certifique-se de que a janela principal do bate-papo na Web esteja oculta por padrão. Você pode fazer isso no manipulador de eventos "
onLoad, depois que "rendertiver sido chamado. Você também deve adicionar manipuladores para ouvir o evento 'view:changepara que o cliente possa abrir e fechar o bate-papo na Web depois que a página for carregada. No nosso exemplo, estamos usando uma classe CSS chamadaHideWebChatpara fazer isso (consulte o exemplo completo para ver a definição dessa classe):
function onLoad(instance) {
instance.render();
instance.on({ type: 'view:change', handler: viewChangeHandler });
instance.elements.getMainWindow().addClassName('HideWebChat');
}
Crie manipuladores para ocultar e mostrar a janela principal do bate-papo na Web em resposta ao evento '
view:change. Este exemplo simplesmente mostra e oculta o elemento; o exemplo completo mostra como você pode adicionar efeitos de animação.
function viewChangeHandler(event, instance) {
if (event.newViewState.mainWindow) {
instance.elements.getMainWindow().removeClassName('HideWebChat');
} else {
instance.elements.getMainWindow().addClassName('HideWebChat');
}
}
Para obter o código funcional completo, consulte o exemplo de elementos personalizados para o chat na web com assistente de IA.