

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
<a name="programmatic-chat-disconnect"></a>

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
<a name="implementation-chat-disconnect"></a>

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
<a name="close-chat-disconnect"></a>

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
<a name="context-chat-disconnect"></a>

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") {
        ...
    }
});
```