View a markdown version of this page

Putuskan secara terprogram sesi obrolan widget komunikasi Connect Customer - Pelanggan Amazon Connect

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Putuskan secara terprogram sesi obrolan widget komunikasi Connect Customer

Anda dapat memutuskan sesi obrolan widget komunikasi secara terprogram menggunakan 'JavaScript dengan memanggil disconnect metode yang disimpan ke widget. iframe Dari dokumen host widget, Anda dapat mereferensikan disconnect fungsi menggunakan cuplikan kode berikut:

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

Anda dapat dengan mudah menambahkannya ke skrip widget yang ada. Berikut ini adalah contoh cuplikan kode:

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

Pelaksanaan dan kasus penggunaan

Memanggil pemutusan secara terprogram dapat berguna dalam beberapa kasus. Ini memberikan kontrol lebih pada kapan harus menghentikan percakapan di luar mengklik End Chat tombol secara manual. Berikut adalah beberapa kasus penggunaan umum kapan harus menelepondisconnect.

Pada penutupan atau navigasi

Kasus penggunaan yang umum adalah melampirkan fungsionalitas pemutusan ke peristiwa yang menyala ketika browser atau konteks tab dihancurkan. pagehidedan beforeunload merupakan peristiwa umum yang dipicu saat merobohkan browser. Ini dipicu ketika pengguna menyegarkan, menavigasi ke URL yang berbeda atau menutup tab atau browser. Meskipun kedua peristiwa diaktifkan ketika konteks browser dihancurkan, tidak ada jaminan bahwa disconnect fungsi dapat sepenuhnya dijalankan sebelum sumber daya browser dibersihkan.

pagehideadalah peristiwa siklus hidup halaman yang lebih modern dan didukung di semua browser utama dan sistem operasi. beforeunloadadalah acara alternatif untuk dicoba jika pagehide acara gagal memanggil pemutusan secara konsisten. beforeunloaddipicu sebelumnya pagehide yang mungkin memberikan keandalan tambahan jika disconnect fungsi gagal diselesaikan sebelum browser ditutup. Ada masalah keandalan beforeunload terutama pada perangkat iOS.

Berikut ini adalah contoh cuplikan kode:

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

Pada pengalihan konteks

Kasus penggunaan lain adalah memicu pemutusan ketika pengguna mengalihkan konteks seperti ketika pengguna beralih atau meminimalkan tab/app atau mengunci layar mereka. A visibilitychange cara dapat dengan andal menangani skenario ini di mana konteksnya tidak lagi terlihat.

Berikut ini adalah contoh cuplikan kode:

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