windowClients не дает правильные URL-адреса в Firefox при использовании в push-событиях работника сервиса - PullRequest
0 голосов
/ 27 марта 2019

Я установил сервисный работник в своем приложении реакции для настройки push-уведомлений, и уведомления работают правильно на chrome, но не на firefox.У меня есть код в pushung-уведомлениях showung, только когда целевой URL-адрес во всплывающем окне уведомлений не соответствует windowClient.url, но кое-как в firefox windowClient.url дает правильный URL-адрес.

это код, который я использовал:

self.addEventListener('install', function(e) {
  self.skipWaiting();
});

self.addEventListener('activate', function(e) {
  self.clients.claim();
});

self.addEventListener('push', function(event) {
  event.waitUntil(
    self.clients
      .matchAll({
        type: 'window',
        includeUncontrolled: true,
      })
      .then(windowClients => {
        var matchingClient = null;
        url = null;
        if (!(self.Notification && self.Notification.permission === 'granted')) {
          return;
        }
        let data = {};
        if (event.data) {
          data = event.data.json();
        }
        url = data.action;
        for (let i = 0; i < windowClients.length; i++) {
          const windowClient = windowClients[i];
          if (windowClient.url === url && windowClient.focused === true) {
            matchingClient = url;
            break;
          }
        }

        if (!matchingClient) {
          return self.registration.showNotification(data.title, {
            body: data.body,
            icon: 'logo.png',
          });
        }
      }),
  );
});

self.addEventListener('notificationclick', function(event) {
  event.notification.close();

  event.waitUntil(clients.openWindow(url));
});

Есть ли проблема с URL окна клиента в Firefox?Версия Firefox, которую я использую - 66.

...