Задать вопрос
Ответы пользователя по тегу Push-технологии
  • Как сделать чтобы web уведомление после подписки поялялось 1 раз?

    @SvizzZzy
    Вариант с помощью 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>


    Чтобы показать уведомление если оно изменилось, нужно менять значение notification_id
    Ответ написан