Пользовательская кнопка
Если вы хотите интегрировать пользовательскую кнопку подписки/отписки со своим дизайном, вы можете это сделать.
Это открытые функции пикселя, которые вы можете использовать в своем JS-коде для пользовательской интеграции:
await pushub.get_subscription_status(); await pushub.subscribe(); await pushub.unsubscribe();
Вот пример кода интеграции, который использует эти пользовательские JS-функции:
<span id="pusher_loading">Loading status...</span>
<a href="#" id="pusher_subscribe" style="display: none;">Subscribe ✅</a>
<a href="#" id="pusher_unsubscribe" style="display: none;">Unsubscribe ❌</a>
<script defer>
let initiate_pusher_script = async () => {
if(typeof pusher !== 'undefined') {
clearInterval(pusher_is_loaded_interval);
/* Get status of subscription */
let status = await pushub.get_subscription_status();
/* Remove loading message */
document.querySelector('#pusher_loading').style.display = 'none';
/* Display subscribe or unsubscribe button based on the current subscription status */
if(status) {
document.querySelector('#pusher_unsubscribe').style.display = 'block';
document.querySelector('#pusher_subscribe').style.display = 'none';
} else {
document.querySelector('#pusher_unsubscribe').style.display = 'none';
document.querySelector('#pusher_subscribe').style.display = 'block';
}
}
}
let pusher_is_loaded_interval = setInterval(initiate_pusher_script, 100);
/* Attach simple subscribe event */
document.querySelector(`#pusher_subscribe`) && document.querySelector(`#pusher_subscribe`).addEventListener('click', async event => {
event.preventDefault();
await pushub.subscribe(event);
initiate_pusher_script();
});
/* Attach simple unsubscribe event */
document.querySelector(`#pusher_unsubscribe`) && document.querySelector(`#pusher_unsubscribe`).addEventListener('click', async event => {
event.preventDefault();
await pushub.unsubscribe(event);
initiate_pusher_script();
});
</script>