Расширенная настройка виджета

Расширенная настройка виджета

Этот раздел описывает продвинутые способы интеграции TapRate: программное открытие виджета, передача данных о пользователе и подписка на события.

Вызов по клику или из JavaScript

Если в панели выбран режим «По JS‑событию», вы можете открыть виджет программно.

Кнопка в разметке:

<button type="button" onclick="window.TapRate && window.TapRate.open()">
  Оценить
</button>

Либо из вашего скрипта:

window.TapRate && window.TapRate.open();

Передача данных о пользователе и полезной нагрузки

Вы можете передавать идентификатор и контактные данные пользователя, а также произвольный объект client_payload.

Способ A — до подключения скрипта:

<script>
  window.TapRateConfig = {
    // необязательные поля пользователя
    manual_id: 'user_123',
    name: 'Иван',
    email: 'ivan@example.com',
    phone: '+79001234567',
    // любая полезная нагрузка (попадёт в оценку)
    client_payload: { orderId: 42, plan: 'pro' }
  };
</script>
<script>(function(w){var cfg = (w.TapRateConfig && typeof w.TapRateConfig === 'object') ? w.TapRateConfig : {};...);</script>

Способ B — после загрузки скрипта:

<script>(function(w){var cfg = (w.TapRateConfig && typeof w.TapRateConfig === 'object') ? w.TapRateConfig : {};...);</script>
<script>
  // Можно установить позже, например, при готовности данных
  window.TapRate && window.TapRate.setUser({
    manual_id: 'user_123',
    name: 'Иван',
    email: 'ivan@example.com',
    phone: '+79001234567'
  });
  window.TapRate && window.TapRate.setClientPayload({
    orderId: 42,
    plan: 'pro'
  });
</script>

События SDK

Вы можете подписываться на события жизненного цикла виджета.

// Когда виджет готов к взаимодействию (можно безопасно вызывать .open())
window.TapRate && window.TapRate.on('ready', function(widget){
  // альтернативный способ установки данных:
  widget.manual_id = 'user_123';
  widget.name = 'Иван';
  widget.email = 'ivan@example.com';
  widget.phone = '+79001234567';
  widget.client_payload = { orderId: 42 };
});
 
window.TapRate.on('opened', function(){ /* показан */ });
window.TapRate.on('closed', function(){ /* закрыт */ });

Смотрите также