Посылаем сообщения в Notification Center из браузера

    С выходом Mac OSX 10.8 пользователям был представлен «Центр Уведомлений» — Notification Center. Как только вам приходит новая почта или сообщение в Facebook, то вы видите в правом верхнем углу всплывающее окошко с уведомлением об этом. Notification Center идентичен панели уведомлений в iOS.

    Используя Notifications API, можно посылать уведомления в Notification Center Mac OSX Mountain Lion из браузера Safari.


    Более подробно работа с Notifications API была описана mythmaker на хабре в топике habrahabr.ru/post/104670

    Ту статью могу дополнить только тем, что вызов метод window.webkitNotifications.requestPermission() может принимать в качестве параметра каллбэк функцию.

    window.webkitNotifications.requestPermission(function(){
    // что-то тут делаем…
    });

    В Mac OS до версии 10.8 JS Notification API был реализован в Google Chrome и работал точно так же как и в других ОС. С версии 10.8 поддержка уведомлений добавлена и в Safari, но неработает отображение иконки, заданной в уведомлении. В качестве иконки отображается иконка приложения, откуда был вызван нотис. Так же нет возможности задавать HTML уведомления.

    Код вызова очень прост:
    function shown(){
    	( window.webkitNotifications.createNotification('message.png', 'Привет Хабр!', 'Получили нотис. Трололо...') ).show();
    }
    


    Ниже представлены скриншоты с результатами работы скрипта.

    Вызов из Safari



    Вызов из Google Chrome



    А так выглядели нотисы в Google Chrome в Mac OSX в предыдущей версии

    Поделиться публикацией

    Похожие публикации

    Комментарии 22
      –2
      <irony>

      Посылаем сообщение в всплывающее окно с кнопкой подтверждения «OK» из браузера:

      <script>
          alert('Суперсообщение!');
      </script>
      

      </lrony>

      А если серьезно — действительно ли одна строка на JS стоила топика на хабре? Мельчаем…
        +6
        Не знаю, благодаря автору, сразу утянул к себе в проект.
          +5
          Хабр — возможность донести мысль большой аудитории. И надо ли делать статью монстр ради того, чтобы просто поделиться полезным опытом?
            +2
            да. Это делает Хабр полезным, а не просто площадкой, где мы узнаем новости.
          +2
          Главное что бы спамеры не добрались до неё.
            +2
            Поздно. (И прямо с этой страницы начинают бешено мелькать сообщения с виагрой и письмами счастья из Африки)
            +2
            А что будет если while true do сделать?
              +5
              > Твит нажатием.
              Господи, за что ты создал русскую OS X.
                +4
                Если вам не хочется заморачиваться с пермишенами и мелкими неудобствами, то есть хороший модуль jquery.notification
                Он делает абстракцию над 2-мя типами нотификаций и запрашивает права доступа только когда это нужно.
                $.notification({
                    icon: 'avatar.png',
                    title: 'Title',
                    content: 'Message',
                    autoclose: true,
                    timeout: 2000,
                    onclick: function () {
                        console.log('Pewpew');
                    }
                }).show();
                
                0
                Хм… Попробовал код выше в Safari и Chrome и оба возвращают ошибку безопасности.
                SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent.

                чднт?
                  +1
                  window.webkitNotifications.requestPermission();
                  

                  Ткнуть разрешить и потом только показывать нотификации.
                    0
                    Выдает: TypeError: Type error.
                      +1
                      в Safari 6 надо передавать callback window.webkitNotifications.requestPermission(function(){})
                        0
                        Ага, спасибо!
                  0
                  Странно, что на Льве у меня Я.Браузер, GChrome поддерживают window.webkitNotifications, а Safari 6 почему-то нет.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое