Подтвердить что ты не робот

Запрос уведомлений WebkitPermission не работает

Я пытаюсь реализовать поддержку собственных уведомлений на рабочем столе 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/) работают отлично: я вижу как приглашение, так и последующие уведомления.

4b9b3361

Ответ 1

Проверьте спецификацию chromium api docs. Вы можете назвать это только как обратную связь с жестом/действием пользователя - щелчком мыши и т.д.

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

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

Ответ 2

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

Как работа вокруг, вы можете изменить

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

Самый короткий код для уведомления

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