Всплывающие сообщения/подсказки — давний элемент 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.
Добавить комментарий