Answer the question
In order to leave comments, you need to log in
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
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>
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question