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