Skip to content

Управление согласием пользователя на получение веб-пуш-уведомлений

По умолчанию 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);
});
});