Disconnettere a livello di programmazione la sessione di chat di un widget di comunicazione Amazon Connect - Amazon Connect

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Disconnettere a livello di programmazione la sessione di chat di un widget di comunicazione Amazon Connect

È possibile disconnettere la sessione di chat di un widget di comunicazione a livello di codice utilizzando 'JavaScript chiamando il disconnect metodo memorizzato nel widget. iframe Dal documento host del widget, puoi fare riferimento alla funzione disconnect utilizzando il seguente frammento di codice:

document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect()

Puoi aggiungerlo facilmente allo script del widget esistente. Di seguito viene riportato un esempio di frammento di codice:

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

Casi d’uso e di implementazione

La chiamata del metodo disconnect a livello di programmazione può essere utile in più casi. Fornisce un maggiore controllo sul momento in cui terminare la conversazione oltre a fare clic manualmente sul pulsante End Chat. Di seguito sono elencati alcuni casi d’uso comuni per la chiamata di disconnect.

Chiusura o navigazione

Un caso d’uso comune può essere quello che prevede di collegare la funzionalità di disconnessione a eventi che si attivano quando il contesto del browser o della scheda viene eliminato. pagehide e beforeunload sono gli eventi comuni che vengono attivati quando si arresta il browser. Questi eventi vengono attivati quando un utente passa a un URL diverso oppure quando aggiorna o chiude la scheda o il browser. Sebbene entrambi gli eventi vengano attivati quando il contesto del browser viene eliminato, non vi è alcuna garanzia che la funzione disconnect possa essere eseguita completamente prima che avvenga la pulizia delle risorse del browser.

pagehide è un evento del ciclo di vita delle pagine più moderno ed è supportato da tutti i principali browser e sistemi operativi. beforeunload è un evento alternativo da provare se l’evento pagehide non riesce a chiamare il metodo disconnect in modo coerente. beforeunload viene attivato prima di pagehide, il che può garantire ulteriore affidabilità se la funzione disconnect non viene completata prima della chiusura del browser. Si sono verificati problemi di affidabilità con beforeunload, soprattutto sui dispositivi iOS.

Di seguito viene riportato un esempio di frammento di codice:

// 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(); });

Cambio di contesto

Un altro caso d'uso potrebbe essere quello di attivare una disconnessione quando l'utente cambia contesto, ad esempio quando cambia o minimizza o blocca lo schermo. tab/app L’evento visibilitychange può gestire in modo affidabile questi scenari in cui il contesto non è più visibile.

Di seguito viene riportato un esempio di frammento di codice:

window.addEventListener("visibilitychange", () => { if (document.visibilityState === "hidden") { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); } else if (document.visibilityState === "visible") { ... } });