Уведомление браузера: не отображается

Кажется, я следую коду, предложенному лабораториями Google для создания serviceWorker, и написал код для pushing notifications, но, похоже, он не отображается. Похоже, что событие push с сервера доходит до браузера, однако функция showNotification просто игнорируется.

// in sw.js
self.addEventListener('push', function(event) {
 console.info('Push Received'); // this shows up
 event.waitUntil(self.registration.showNotification('Hello World'));
 // tried  self.registration.showNotification('Hello World') but still does not show up
});

Далее, чтобы проверить, работает ли showNotification, я вставил в main.js следующее.

//in main.js
console.info(Notification.permission) // shows granted
if (Notification.permission == 'granted') {
 console.info('will show notification') // this gets logged
 navigator.serviceWorker.getRegistration().then(function(reg) {
   Console.log('reached here'); // this too gets logged
   reg.showNotification('Hello world!');
 });

Наконец, я наткнулся на этот сайт, который некоторые люди использовали для тестирования.

https://gauntface.github.io/simple-push-demo/

а также

https://web-push-book.gauntface.com/demos/notification-examples/

После разрешения уведомлений с этого сайта я не обнаружил, что уведомления появляются с помощью экрана или данной команды curl.

Я пробовал и в Chrome, и в Firefox, и результаты такие же. Я использую Chrome 68.x и Firefox 61.x в Mac OS 10.13.6.

Я обнаружил, что на сайте, который я использую, включены уведомления в настройках Chrome (расширенный раздел). Даже щелчок по части secure в адресной строке показывает, что уведомления были установлены на allow. Есть ли какие-то другие настройки, которых мне не хватает? Спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
3 676
3

Ответы 3

Это была такая глупая ошибка. В Mac OS X есть настройки уведомлений, которые (я думаю, по умолчанию) установлены на «НЕ БЕСПОКОИТЬ». Отключение этого показало push-уведомления. Думали, что другие люди, вроде меня, которые, возможно, этого не осознавали, должны знать.

Я только что потратил на это час. Без этого ответа было бы больше. Спасибо!

shennan 04.02.2021 18:21

Несколько дополнительных советов для пользователей настольных компьютеров с Windows 10:

  • Уведомление не -браузера - уведомления, вызванные self.registration.showNotification, будут отображаться в браузере как нет, как и следовало ожидать. Эти уведомления отображаются в Центре действий Windows.

  • Помощь в фокусе - в Windows есть параметр «Focus Assist», который (аналогично настройке Apple, упомянутой выше) определяет, будут ли уведомления в Центр уведомлений беззвучными или вызывать всплывающее сообщение. Он не упоминает Центр поддержки.

  • Более одного типа «Уведомления» Чтобы запутать ситуацию, область «Уведомления» Windows - это другая, но связанная функция. Центр уведомлений имеет значок в области уведомлений панели задач. Вы можете подробнее здесь.

  • Двойные мониторы - Если у вас более одного монитора, вы увидите только значок Центра поддержки на панели задач вашего основного монитора. Кроме того, на основном мониторе вы увидите только всплывающее сообщение Центра поддержки.

  • Существующие уведомления подавляют тосты - Если домен вашего сайта уже указан в Центре действий, вы не увидите дополнительного всплывающего сообщения для новых сообщений. Однако вы по-прежнему будете видеть элемент, созданный вашим сайтом, в Центре уведомлений. Очистите этот элемент, и ваше следующее уведомление буду приведет к появлению тоста.

Проверьте MacOS notifications settings -> google chrome -> allow notification

ПРИМЕЧАНИЕ: только для пользователей Macbook.

Другие вопросы по теме