Согласие на уведомления не сохраняется

#javascript

#javascript

Вопрос:

Тестирование API уведомлений.

Я последовал приведенному здесь примеру:https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API

Я получаю приглашение дать свое согласие, однако, даже когда я даю его, внутреннее состояние все еще не предоставлено.

Источник проблемы, я полагаю, заключается в том, что я запускаю файл в браузере, что означает, что он не размещен на веб-сервере, я использую file://... для доступа к нему, но я не смог найти место, где говорится, что это должно быть проблемой.

Ниже приведен код:

 if (Notification.permission === "granted") {
  var notification = new Notification("Hi there!");
  setTimeout(notification.close.bind(notification), 1000);
} else if (Notification.permission !== 'denied') {
  Notification.requestPermission(function (permission) {
    if (permission === "granted") {
      var notification = new Notification("Hi there!");
      setTimeout(notification.close.bind(notification), 1000);
    }
  });
} else {
  alert("Notification access denied.");
}
  

Пытаюсь выяснить, почему это не работает.

Комментарии:

1. Я полагаю, что настройки уведомлений (разрешать или запрещать) связаны с доменами (или веб-сайтами). Итак, если домена нет, как он может узнать, может ли он показывать уведомление или нет? И, как уже упоминалось, это будущее доступно в WebWorker. И веб-работнику, я полагаю, нужно знать, в каком домене это работает.

Ответ №1:

Если вы используете Chrome, он не разрешает использование файлов cookie в локальных файлах. Вы могли бы просто разместить веб-сервер, например, с помощью xampp или wampp, и обслуживать страницу там. Это позволило бы установить файлы cookie.