Управление согласием пользователя на получение веб-пуш-уведомлений
По умолчанию Wavesend SDK показывает нативный запрос на подписку сразу после инициализации. Однако вы можете запросить согласие пользователя в более подходящее время, например, после того как у пользователя будет возможность повзаимодействовать с вашим сайтом.
Отключение автоматической подписки
Section titled “Отключение автоматической подписки”Чтобы SDK не показывал запрос на подписку автоматически при инициализации, установите параметр communicationEnabled в значение false в вызове init. Это дает вам контроль над тем, когда запрашивать разрешение на отправку пуш-уведомлений.
<script type="text/javascript" src="/docs//cdn.wavesend.ru/webpush/v3/wavesend-web-notifications.js" async></script><script type="text/javascript"> var Wavesend = Wavesend || []; Wavesend.push(['init', { // other initialization parameters... communicationEnabled: false, // Отключаем обмен данными, чтобы предотвратить автоматические запросы на подписку }]);</script>Включение подписки по согласию пользователя
Section titled “Включение подписки по согласию пользователя”После отключения автоматической подписки вы можете предложить пользователю подписаться в любое время. Когда пользователь соглашается получать пуш-уведомления (например, нажимая кнопку «Подписаться» в вашем пользовательском интерфейсе), вы можете включить обмен данными, вызвав метод setCommunicationEnabled.
Wavesend.setCommunicationEnabled(status?: boolean): Promise<void>
Вызов Wavesend.setCommunicationEnabled(true) включает обмен данными с сервисами Wavesend. После включения SDK покажет нативный запрос на разрешение от браузера.
Вот пример того, как вы можете использовать этот метод:
// Предполагается, что у вас есть кнопка подписки с id="subscribe-button"const subscribeButton = document.getElementById('subscribe-button');
subscribeButton.addEventListener('click', () => { Wavesend.setCommunicationEnabled(true) .then(() => { console.log('Пользователь подписан на пуш-уведомления.'); // Теперь вы можете скрыть кнопку подписки subscribeButton.style.display = 'none'; }) .catch((error) => { console.error('Ошибка при подписке пользователя:', error); });});