Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   HTML 5 Notifications API (https://javascript.ru/forum/misc/50520-html-5-notifications-api.html)

zoOmer 29.09.2014 21:16

HTML 5 Notifications API
 
function notifyMe() {
  // Давайте проверим, поддерживает ли браузер уведомления
  if (!("Notification" in window)) {
    alert("Ваш браузер не поддерживает HTML5 Notifications");
  }
  // Теперь давайте проверим есть ли у нас разрешение для отображения уведомления
  else if (Notification.permission === "granted") {
    // Если все в порядке, то создадим уведомление
    var notification = new Notification('Уведомление HTML5', {
    	lang: 'ru-RU', 
    	body: 'Здесь какой-то контент уведомления...', 
    	icon: 'http://lorempixel.com/output/sports-q-c-100-100-9.jpg'
    });
  }
  // В противном случае, мы должны спросить у пользователя разрешение
  else if (Notification.permission === 'default') {
    Notification.requestPermission(function (permission) {

      // Не зависимо от ответа, сохраняем его в настройках
      if(!('permission' in Notification)) {
        Notification.permission = permission;
      }
      // Если разрешение получено, то создадим уведомление
      if (permission === "granted") {
        var notification = new Notification('Уведомление HTML5', {
    		lang: 'ru-RU', 
    		body: 'Здесь какой-то контент уведомления...', 
    		icon: 'http://lorempixel.com/output/sports-q-c-100-100-9.jpg'
    	});
      }
    });
  }
}


У меня несколько вопросов по данному скрипту может кто знает :)

Как сделать чексбокс который будет отвечать за показ уведомлений то есть если поставить галку то уведомления выводятся если снять то не будут.

И второй вопрос как использовать несколько уведомлений?
то есть чтоб не создавать новую функцию notifyMe2 а, иным способом можно ли?

BETEPAH 29.09.2014 22:15

Цитата:

Сообщение от zoOmer
if (!("Notification" in window)) {
alert("Ваш браузер не поддерживает HTML5 Notifications");
}

Не делайте так! Лучше так.
alert('Здесь какой-то контент уведомления...');
а то вместо сообщения пользователь будет получать бесполезный алерт. А еще лучше, наверное, вообще алерт не выводить - это раздражает. Сидишь читаешь статью, а тут тебе алерт - бах из свернутого окна!
Цитата:

Сообщение от zoOmer
Как сделать чексбокс который будет отвечать за показ уведомлений то есть если поставить галку то уведомления выводятся если снять то не будут.

В начале функции сделать проверку
if (document.getElementById('checkboxID').checked == true )

Второй вопрос не понятен. Несколько уведомлений - это как?

zoOmer 29.09.2014 23:28

BETEPAH, Спасибо большое будем разбираться)

По поводу второго вопроса - Ну чтоб выводить несколько уведомлений с разным содержимом. То есть вызываю одно уведомление в нем один
текст вызываю для другой функции там уже другой текст.

Как то так)))

BETEPAH 30.09.2014 10:33

zoOmer,
текст передавать в аргументах функции
function notifyMe(text)

zoOmer 30.09.2014 20:21

BETEPAH, хм. Не могли бы вы по подробней рассказать о передаче в функцию?

function notifyMe(text)

kostyanet 01.10.2014 05:56

ТС похоже не понял в самом начале. Весь представленный код выполняется после нажатия юзером кнопки\чекбокса "Заколебать меня". Оно отсюдо ва переписано https://developer.mozilla.org/en/doc...I/notification

kostyanet 01.10.2014 06:00

Поэтому и возник такой вот вопрос

Цитата:

Сообщение от zoOmer
То есть вызываю одно уведомление в нем один

Уведомления создаются по какому-то событию и берутся откуда-то _после_ того как все проверено и разрешение получено.

Отсюда

if (permission === "granted") {

оно и начинается - создается апликуха которая будет долбить юзера по поводу.

Скорее всего это будет таймер с запросом к серверу - нет ли чем задолбать?

zoOmer 31.10.2015 23:19

if (document.getElementById('checkboxID').checked == true )
Не работает этот вариант((

zoOmer 09.11.2015 14:52

Цитата:

Сообщение от zoOmer
if (document.getElementById('checkboxID').checked == true )
Не работает этот вариант((

Подскажите что нить

EmperioAf 09.11.2015 17:55

Цитата:

Сообщение от zoOmer
Не работает этот вариант((

Это работает. Покажите код в котором это не работает.


Часовой пояс GMT +3, время: 16:43.