As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Desconectar programaticamente a sessão de chat de um widget de comunicação do Amazon Connect
Você pode desconectar a sessão de bate-papo de um widget de comunicação programaticamente usando 'JavaScript chamando o disconnect método armazenado no widget. iframe No documento host do widget, você pode fazer referência à função disconnect usando o seguinte trecho de código:
document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect()
Você pode adicioná-lo facilmente ao script de widget existente. Veja a seguir um exemplo de trecho de código:
<script type="text/javascript"> (function(w, d, x, id){ s=d.createElement('script'); s.src='https://your-instance-alias.my.connect.aws/connectwidget/static/amazon-connect-chat-interface-client.js'; s.async=1; s.id=id; d.getElementsByTagName('head')[0].appendChild(s); w[x] = w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) }; })(window, document, 'amazon_connect', '...'); amazon_connect('styles', { iconType: 'CHAT', openChat: { color: '#ffffff', backgroundColor: '#123456' }, closeChat: { color: '#ffffff', backgroundColor: '#123456'} }); amazon_connect('snippetId', '...'); amazon_connect('supportedMessagingContentTypes', [ 'text/plain', 'text/markdown', 'application/vnd.amazonaws.connect.message.interactive', 'application/vnd.amazonaws.connect.message.interactive.response' ]); // Add disconnect event listener window.addEventListener("pagehide", () => { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); }); </script>
Implementação e casos de uso
Desconectar chamadas programaticamente pode ser útil em vários casos. O método oferece maior controle sobre quando encerrar a conversa, além do clique manual no botão End Chat. Veja a seguir alguns casos de uso comuns de quando chamar disconnect.
No encerramento ou na navegação
Um caso de uso comum seria anexar a funcionalidade de desconexão a eventos que são acionados quando o contexto do navegador ou da guia é encerrado. pagehide e beforeunload são os eventos comuns acionados ao encerrar o navegador. Eles são acionados quando um usuário atualiza, navega para um URL diferente ou fecha a guia ou o navegador. Embora os dois eventos sejam acionados quando o contexto do navegador é encerrado, não há garantia de que a função disconnect possa ser totalmente executada antes que os recursos do navegador sejam limpos.
pagehide é um evento de ciclo de vida de página mais moderno e comporta todos os principais navegadores e sistemas operacionais. beforeunload é um evento alternativo para tentar se o evento pagehide não chamar a desconexão de forma consistente. beforeunloadé acionado antes de pagehide, o que pode proporcionar confiabilidade adicional caso a função disconnect não seja concluída antes que o navegador seja fechado. Houve problemas de confiabilidade em relação a beforeunload, principalmente em dispositivos iOS.
Veja a seguir um exemplo de trecho de código:
// Call disconnect when `beforeunload` triggers window.addEventListener("beforeunload", (event) => { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); }); // Call disconnect when `pagehide` triggers window.addEventListener("pagehide", (event) => { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); });
Na alternância de contextos
Outro caso de uso seria acionar uma desconexão quando o usuário alterna contextos, como quando um usuário alterna ou minimiza tab/app ou bloqueia sua tela. O evento visibilitychange pode lidar de forma confiável com esses cenários em que o contexto não está mais visível.
Veja a seguir um exemplo de trecho de código:
window.addEventListener("visibilitychange", () => { if (document.visibilityState === "hidden") { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); } else if (document.visibilityState === "visible") { ... } });