Web Notifications API — настоящие pop-up’bi

Всплывающие сообщения/подсказки — давний элемент html-страниц. Реализация их была (и есть) самая разная — элементы <div>, с переменной видимостью, pop-up-окна и даже флэш-анимация. Собственно, у любого из этих подходов есть только один существенный недостаток — браузер и программы экранного доступа не имеют понятия о назначении этих элементов. И надо признать, в настоящее время недостаток этот довольно существен.

Notifications API — это механизм всплывающих оповещений, причем всплывают они вне браузера и вообще довольно удобны, но реализованы они пока только в одном браузере Google Chrome. Посмотрим на этот механизм в действии. Начнем с проверки:

If (window. webkitNotifications) {

Console. log("Notifications are supported!");

If (window. webkitNotifications. checkPermission() == 0) { console. log(‘Ok.’); }

} else {

Window. webkitNotifications. requestPermission();

}

Else {

Console. logC’Notifications are not supported for this Browser/OS version yet.”);

}

Тут мы проверяем не только поддержку Notifications API. Метод checkPermission удостоверяется, есть ли у сценария права на показ таких оповещений. В случае их отсутствия методом request-Permission() права запрашиваются у пользователя. checkPermission() может возвращать три значения:

- PERMISSION_ALLOWED [0]: пользователь разрешил использование сообщений с текущего домена;

- PERMISSION_NOT_ALLOWED [1]: пользователь не предпринимал никаких действий;

- PERMISSION_DENIED [2]: пользователь явно запретил использование сообщений с текущего домена.

Устанавливать права для данного домена нужно только один раз. Теперь можно показывать сообщения:

Notification = window. webkitNotifications. vreateNotification(‘html5.png’,

‘HTML5 Web Notifications’,'TeKCT сообщения’);

Notification. show();

Метод createNotification() создает сообщение, принимая три аргумента — картинку сообщения, заголовок и текст. Результат — на рис. 124.

Второй тип сообщений создается заданием окна сообщения методом createHTMLNotification() (рис. 125):

WebkitNotifications. createHTMLNotification(‘Http://www. dmk-press. ru/’).show();

Собственно, это почти все, остался один метод — cancel(), запрещающий показ уведомления. Если таковое уже показано методом show(), оно будет закрыто.

Надо сказать, что механизм Web Notifications уже перестал быть прерогативой Google. Несколько измененный, он теперь описан в документе со статусом W3C Working Draft. Правда, делается это немного по-другому:

Рис. 124. Простые Web Notifications

Рис. 125. Сообщения в HTML-формате

New Notification("HTML5 Web Notifications",

{ iconUrl: "html5.png", body: "Текст сообщения",

Onshow: function() { setTimeout(notification. close(), 15000); }, onclose: function() { cancelReminders(event); }

});

Работать эта конструкция будет. Но… пока только в одном браузере. Да-да, в Google.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *