S
S
sochi-russia2016-12-11 12:53:48
JavaScript
sochi-russia, 2016-12-11 12:53:48

How to make web notification after subscription appear 1 time?

So that the notification after the reboot does not repeat if the person saw the message and it is the same, but if the message has changed, then the person has it displayed?

<script>
 function sendNotification(title, options) {
// Проверим, поддерживает ли браузер HTML5 Notifications
if (!("Notification" in window)) {
alert('Ваш браузер не поддерживает HTML Notifications, его необходимо обновить.');
}

// Проверим, есть ли права на отправку уведомлений
else if (Notification.permission === "granted") {
// Если права есть, отправим уведомление
var notification = new Notification(title, options);

function clickFunc() {window.location.href = 'http://aviaciya.com/specpredlozheniya_aviakompanij/';}

notification.onclick = clickFunc;
}

// Если прав нет, пытаемся их получить
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Если права успешно получены, отправляем уведомление
if (permission === "granted") {
var notification = new Notification(title, options);

} else {
alert('Вы запретили показывать уведомления'); // Юзер отклонил наш запрос на показ уведомлений
}
});
} else {
// Пользователь ранее отклонил наш запрос на показ уведомлений
// В этом месте мы можем, но не будем его беспокоить. Уважайте решения своих пользователей.
}}</script>
<script type="text/javascript" async>
sendNotification('Зимние скидки на авиабилеты!', {
body: 'Распродажа, сезонные скидки',
icon: 'http://avia-avia.ru/image/samolet_p.png',
dir: 'auto'
});</script>

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
SvizzZzy, 2016-12-11
@sochi-russia

Option using cookies:

<script>
  
var ok=true;	
var notification_id='123123123123';
var notification_check=readCookie("notification");
if (notification_check==notification_id){ok=false;};

 function sendNotification(title, options) {
 //create cook
createCookie("notification",notification_id,"1");
 if (ok){
// Проверим, поддерживает ли браузер HTML5 Notifications
if (!("Notification" in window)) {
alert('Ваш браузер не поддерживает HTML Notifications, его необходимо обновить.');
}

// Проверим, есть ли права на отправку уведомлений
else if (Notification.permission === "granted") {

  
// Если права есть, отправим уведомление
var notification = new Notification(title, options);

function clickFunc() {window.location.href = 'http://aviaciya.com/specpredlozheniya_aviakompanij/';}

notification.onclick = clickFunc;
}

// Если прав нет, пытаемся их получить
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Если права успешно получены, отправляем уведомление
if (permission === "granted") {
var notification = new Notification(title, options);
 
} else {
alert('Вы запретили показывать уведомления'); // Юзер отклонил наш запрос на показ уведомлений
}
});
} else {
// Пользователь ранее отклонил наш запрос на показ уведомлений
// В этом месте мы можем, но не будем его беспокоить. Уважайте решения своих пользователей.
}

 

 }

}


//cookie
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

 


</script>
<script type="text/javascript" async>
sendNotification('Зимние скидки на авиабилеты!', {
body: 'Распродажа, сезонные скидки',
icon: 'http://avia-avia.ru/image/samolet_p.png',
dir: 'auto'
});</script>

To show a notification if it has changed, you need to change the value of notification_id

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question