Запросы уведомлений Webkit не работают - PullRequest
27 голосов
/ 18 февраля 2011

Я пытаюсь реализовать поддержку уведомлений рабочего стола WebKit на моем сайте. Когда я пытаюсь запросить разрешение пользователя на использование уведомлений, абсолютно ничего не происходит. Например, следующий HTML-код не запрашивает у Chrome разрешения:

<html lang="en">
<head></head>

<body>
    <h1>Testing</h1>
    <script>
        window.webkitNotifications.requestPermission();
    </script>
</body>
</html>

Я знаю, что с моей версией Chrome проблем нет, потому что другие сайты (например, http://www.html5rocks.com/tutorials/notifications/quick/) работают отлично): я вижу как приглашение, так и последующие уведомления.

Ответы [ 2 ]

50 голосов
/ 18 февраля 2011

Проверьте технические характеристики в Chromium Api Docs . Вы можете называть это только как обратную связь с жестом / действием пользователя - щелчком мыши и т.д.

requestPermission Запрашивает, чтобы Пользовательский агент запрашивает у пользователя разрешение показывать уведомления из скриптов. Этот метод должен вызываться только при обработке пользовательского жеста ; в других обстоятельств у него не будет эффект. Этот метод является асинхронным. Функция, предоставляемая в обратном вызове, будет быть вызванным, когда пользователь ответил на запрос разрешения. Если текущий уровень разрешений PERMISSION_DENIED, пользовательский агент может не предпринимать никаких действий в ответ на requestPermission.

ОБНОВЛЕНИЕ 2014-10-01 : в Chrome 37 было отменено требование жеста пользователя . Теперь должна быть возможность запросить разрешение на отображение уведомлений в любой момент. Если вы хотите настроить таргетинг и на более ранние версии Chrome (например, в корпоративной среде), вам, вероятно, придется продолжать полагаться на события жестов пользователя.

2 голосов
/ 14 октября 2014

Для проверки уведомления на локальный файл (file: //) появится разрешение, но уведомление не будет работать на chrome.

В качестве обходного пути вы можете изменить

Настройки контента> Уведомление> Разрешить всем веб-сайтам показывать уведомление

Кратчайший код для отображения уведомления

var notification = new Notification("YOUR MESSAGE");
...