#1303: Как инициировать выход из учетной записи в виджете программно?
Отредактирована: 213 дней назадСимптомы
Есть ли возможность инициировать выход из учетной записи (логаут, logout) в виджете программно?
Есть ли API для выхода из учетной записи виджета?
Решение
Да, инициировать выход из учетной записи виджета можно программно, используя стандартное браузерное API window.postMessage на DOM объекте iframe:
const iframe = document.getElementById("swarmica_widget_iframe_id");
iframe.contentWindow.postMessage({ type: "LOGOUT_WIDGET" }, "*");
Например, вот так может выглядеть код для выхода из учетной записи при нажатии кнопки:
<!-- parent HTML -->
<button id="logoutWidgetBtn">
Logout widget
</button>
<!-- start embedded Swarmica widget script -->
<iframe src="..." id="swarmica_widget_iframe_id" style="position: fixed; right: 12px; bottom: 12px; width: 56px; height: 56px; overflow: hidden; "
allowTransparency="true"
frameborder="0"
allowTransparency="true" frameborder="0"></iframe>
<!-- rest of embed code -->
<script>
const iframe = document.getElementById("swarmica_widget_iframe_id")
iframe.onload = () => {
renderWidget("swarmica_widget_iframe_id")
}
document.getElementById("swarmica_widget_iframe_id").addEventListener("click",
() => {
if (!iframe || !iframe.contentWindow) return;
iframe.contentWindow.postMessage({ type: "LOGOUT_WIDGET" }, "*")
});
</script>
<!-- end embedded Swarmica widget scripts -->
Для использования этого API необходимо установить обновление v5.7.2 или выше