Как добавить значок уведомления в рабочий файл сервиса в проекте create-response-app - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над реактивным проектом, который создается с помощью шаблона создания-реактивного приложения, и мне не терпится использовать такие аспекты PWA, как push-уведомление. Поэтому я создал служебный файл для push-уведомлений, который поддерживается Google Firebase, как показано ниже.

importScripts("https://www.gstatic.com/firebasejs/4.12.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/4.12.0/firebase-messaging.js");

firebase.initializeApp({
  messagingSenderId: "416......630"
})

const messaging = firebase.messaging()

messaging.setBackgroundMessageHandler(function(payload) {
  const title = payload.notification.title;
  const options = {
    body: payload.notification.body,
    icon: '/images/icon/appicon.png',
    badge: '/images/icon/appicon.png'
  }
  return self.registration.showNotification(title, options);
})

self.addEventListener("notificationclick", function(event) {
  const clickedNotification = event.notification;
  clickedNotification.close();
  const promiseChain = clients
    .matchAll({
      type: "window",
      includeUncontrolled: true
    })
    .then(windowClients => {
      let matchingClient = null;
      for (let i = 0; i < windowClients.length; i++) {
        const windowClient = windowClients[i];
        if (windowClient.url === feClickAction) {
          matchingClient = windowClient;
          break;
        }
      }
      if (matchingClient) {
        return matchingClient.focus();
      } else {
        return clients.openWindow(feClickAction);
      }
    });
  event.waitUntil(promiseChain);
})

Это служебный рабочий файл, и есть еще один файл, который инициализирует обмен сообщениями в облаке Firebase, и они работают очень хорошо. НО я не вижу значок, хотя я объявил его showNotification вариант.

Файл рабочего сервиса находится в папке public, а файл appicon.png находится в папке public/images/icon. Я уже пытался заменить путь к папке с развернутым URL, он не работал.

...