Notification

Notification - об'єкт для показу сповіщеннь.

Синтаксис:

var notf = new Notification(title, options);

Параметри:

notf - зміна яка отримує новостворений об'єкт Notification.

title - рядок який містить заголовок сповіщення.

options - об'єкт який містить опції сповіщення:

Опис:

Notification - об'єкт для відображення Web сповіщення.

Web сповіщення у JavaScript

Web notification API

HTML 5 Notifications API

Web сповіщення у JavaScript

Веб сповіщення у ДжаваСкрипт

Що таке Веб сповіщення у JavaScript

Web уведомления у JavaScript

Что такое Web Уведомления и как их использовать. Веб-оповещения.

Web сповіщення відображають повідомлень для користувача поза контекстом веб-сторінки і браузера.  Сповіщення відображаються на «робочому столі», що відноситься до якоїсь статичної області дисплея за межами веб-сторінки і може відображатися як:

Web сповіщення відображаються навіть якщо браузер згорнуто.

Де саме будуть відображатися сповіщення залежить від пристрою користувача і операційної системи.

Вигляд сповіщення:

Для того щоб сайт міг відображати сповіщення користувач повинен дати на це дозвіл.

Рішення дозволу користувача міститься у властивості Notification.permission, яка містить рядок з наступними значеннями:

Якщо властивість Notification.permission має значення "granted" тоді можна показувати сповіщення:if(Notification.permission=="granted"){ var n= new Notification('JavaScript', {body:'JavaScript довідка', icon:'/dani/test.png', vibrate:250, lang:'uk-UA', tag:'js'}); }else alert('Notification.permission != "granted"');

Якщо властивість Notification.permission має значення "default" тоді необхідно запитати у користувача дозвіл на показ за допомогою метода Notification.requestPermission():if(Notification.permission=="default") Notification.requestPermission(function(res){ if(res=='granted') var n= new Notification('JavaScript', {body:'JavaScript довідка', icon:'/dani/test.png', vibrate:250, lang:'uk-UA', tag:'js'}); }); else alert('Notification.permission != "default"');

Якщо властивість Notification.permission має значення "denied" то це означає що користувач заборонив сайту показувати сповіщення і навіть "примусове" відображення сповіщення браузер буде блокувати. if(Notification.permission==" denied"){ alert('користувач заборонив показувати сповіщення поточного сайту'); //примусово показуємо сповіщення var n= new Notification('JavaScript', {body:'JavaScript довідка', icon:'/dani/test.png', vibrate:250, lang:'uk-UA', tag:'js'}); }else alert('Notification.permission != "denied"');

Щоб показати користувачу інформаційне вікно для отримання дозволу викликається метод Notification.requestPermission:

Notification.requestPermission(function(res){alert('результат дозволу користувача: '+res);});

Інформаційне вікно браузера для отримання дозволу для показу сповіщення:

Не всі браузери підтримують Web сповіщення.

Різні браузери можуть не підтримувати деякі властивості, методи, параметри об'єкта Notification.

Приклад:

try{ var n= new Notification('JavaScript', {body:'JavaScript довідка', icon:'/dani/test.png', vibrate:250, lang:'uk-UA', tag:'js', sound:'/dani/test.mp3'}); n.onclick=function(){alert('Користувач клікнув по сповіщенню.');}; n.onerror=function(e){alert('помилка сповіщення '+e);} }catch(e){alert('Ваш браузер не підтримує конструктор Notification.\n'+e);} function newNotification(title, options){ //перевіряємо чи підтримує браузер сповіщення if(window.Notification){ //перевіряємо чи дозволено сповіщення if(Notification.permission=='granted') var n=new Notification(title, options); //якщо дозвіл не відомий else if(Notification.permission=='default') Notification.requestPermission(function(res){if(res=='granted')n=new Notification(title, options);}); else alert('Сповіщення заборонено користувачем!'); }else alert('Ваш браузер не підтримує Notification'); } newNotification("JavaScript",{body:'приклад сповіщення', icon:'/dani/test.png'}); //функція для події onclick function clik(){ window.open('http://яваскрипт.укр/зміст'); } if(window.Notification){ switch(Notification.permission){ // не відомо про дозвіл, тому запитуємо користувача case 'default': Notification.requestPermission(function(res){ //якщо користувач підтвердив дозвіл у модальному вікні if(res=='granted'){ var n=new Notification('JavaScript',{body:'JavaScript Довідка - зміст', icon:'/dani/test.png'}); n.onclick=clik;} }); break; //дозвілено показувати сповіщення case 'granted': var n=new Notification('JavaScript',{body:'JavaScript Довідка - зміст', icon:'/dani/test.png'}); n.onclick=clik; break; default: alert("Показ сповіщення заборонено користувачем."); break; } }else alert('Ваш браузер не підтримує Notification');