Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Programmgesteuertes Trennen der Chat-Sitzung eines Kommunikations-Widgets von Amazon Connect
Sie können die Chat-Sitzung eines Kommunikations-Widgets programmgesteuert mithilfe JavaScript von 'trennen, indem Sie die im Widget gespeicherte disconnect Methode aufrufen. iframe Im Host-Dokument des Widgets können Sie mithilfe des folgenden Codeausschnitts auf die disconnect-Funktion verweisen:
document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect()
Sie können es einfach zum vorhandenen Widget-Skript hinzufügen. Es folgt ein Beispiel für einen Codeausschnitt:
<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>
Implementierung und Anwendungsfälle
Das programmgesteuerte Aufrufen von „Verbindung trennen“ kann in mehreren Fällen nützlich sein. Es bietet mehr Kontrolle darüber, wann die Konversation beendet werden soll, als manuell auf die Schaltfläche End Chat zu klicken. Im Folgenden sind einige häufige Anwendungsfälle für den Aufruf von disconnect aufgeführt.
Beim Schließen oder beim Navigieren
Ein häufiger Anwendungsfall wäre das Anfügen der Funktion zum Trennen der Verbindung an Ereignisse, die ausgelöst werden, wenn der Browser- oder Registerkartenkontext zerstört wird. pagehide und beforeunload sind die häufigsten Ereignisse, die ausgelöst werden, wenn der Browser heruntergefahren wird. Diese werden ausgelöst, wenn ein Benutzer den Bildschirm aktualisiert, zu einer anderen URL navigiert oder die Registerkarte oder den Browser schließt. Obwohl beide Ereignisse ausgelöst werden, wenn der Browser-Kontext zerstört wird, gibt es keine Garantie dafür, dass die disconnect-Funktion vollständig ausgeführt werden kann, bevor die Ressourcen des Browsers bereinigt wurden.
pagehide ist ein moderneres Ereignis im Seitenlebenszyklus und wird von allen gängigen Browsern und Betriebssystemen unterstützt. beforeunload ist ein alternatives Ereignis, das Sie ausprobieren können, wenn das Ereignis pagehide „Verbindung trennen“ nicht konsistent aufruft. beforeunload wird vor pagehide ausgelöst. Dies kann zusätzliche Zuverlässigkeit bieten, falls die disconnect-Funktion nicht abgeschlossen werden kann, bevor der Browser geschlossen wird. Insbesondere bei iOS-Geräten gab es Zuverlässigkeitsprobleme im Hinblick auf beforeunload.
Es folgt ein Beispiel für einen Codeausschnitt:
// 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(); });
Beim Kontextwechsel
Ein weiterer Anwendungsfall wäre das Auslösen einer Unterbrechung, wenn der Benutzer den Kontext wechselt, z. B. wenn ein Benutzer den Bildschirm wechselt, minimiert oder seinen Bildschirm tab/app sperrt. Das visibilitychange-Ereignis funktioniert in diesen Szenarien, in denen der Kontext nicht mehr sichtbar ist, zuverlässig.
Es folgt ein Beispiel für einen Codeausschnitt:
window.addEventListener("visibilitychange", () => { if (document.visibilityState === "hidden") { document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect(); } else if (document.visibilityState === "visible") { ... } });