Запустите несколько экземпляров виджетов на одной странице с изолированными контейнерами, событиями и API экземпляров. Используйте уникальные идентификаторы экземпляров для загрузки разных конфигураций рядом (например, продажи + поддержка) без конфликтов.
Некоторым приложениям нужно больше одного виджета одновременно. Многобрендовые сайты электронной коммерции могут отображать виджеты для разных категорий продуктов, а платформы поддержки могут запускать отдельные виджеты для продаж и технической поддержки. Поддержка нескольких виджетов теперь доступна через встраивание на основе экземпляров и API для каждого экземпляра.
data-instance-iddata-config-id для каждого экземпляра, когда это необходимоcompanin-widget-container-<instanceId> / companin-docs-widget-container-<instanceId>)Это позволяет нескольким независимым виджетам сосуществовать на одной странице без перезаписи друг друга.
Используйте уникальные идентификаторы скриптов и идентификаторы экземпляров для каждого экземпляра виджета:
<script
id="companin-widget-script-sales"
src="https://widget.companin.tech/widget.js"
data-client-id="..."
data-agent-id="..."
data-config-id="sales-config-id"
data-instance-id="sales-widget"
></script>
<script
id="companin-widget-script-support"
src="https://widget.companin.tech/widget.js"
data-client-id="..."
data-agent-id="..."
data-config-id="support-config-id"
data-instance-id="support-widget"
></script>
Используйте API реестра для нацеливания на конкретные экземпляры:
const sales = window.CompaninWidgets?.get('sales-widget');
const support = window.CompaninWidgets?.get('support-widget');
sales?.sendMessage('Показать текущие предложения');
support?.sendMessage('Мне нужна техническая помощь');
window.CompaninWidgets?.list();
window.CompaninWidgets?.destroy('support-widget');
Экземпляры виджетов документации используют параллельный реестр:
window.CompaninDocsWidgets.get(id)window.CompaninDocsWidgets.list()window.CompaninDocsWidgets.destroy(id)Существующие интеграции продолжают работать. window.CompaninWidget и window.CompaninDocsWidget по-прежнему указывают на последний инициализированный экземпляр, в то время как API реестра обеспечивают детерминированное нацеливание на многоэкземпляры.