Как сосредоточиться на вкладке, на уведомление нажмите в Angular 8? - PullRequest
0 голосов
/ 01 апреля 2020

Цель состоит в том, чтобы, когда пользователь нажимает на уведомление браузера, посмотреть, открыта ли уже страница и go к ней, а если нет, открыть ее в новой вкладке или окне.

это выполнимо при использовании собственного работника сервиса, использующего этот код

    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 === urlToOpen) {
         matchingClient = windowClient;
         break;
       }
     }

     if (matchingClient) {
       return matchingClient.focus();
     } else {
       return clients.openWindow(urlToOpen);
     }   });

   event.waitUntil(promiseChain);

, но в angular у них есть своя собственная оболочка работника сервиса, и он генерирует файл работника сервиса во время выполнения.

мой код в angular теперь это

  this.swPush.notificationClicks.subscribe(
    ({ action, notification }) => {
      if (notification && notification !== null && notification['data']) {
        const url = notification['data'].url;
        window.open(url, '_blank');
      }
    });

Итак, во-первых, есть ли способ реализовать это в angular (swPu sh)?

, если нет, у меня есть редактировать сгенерированный файл рабочего сервиса и как (лучшие практики)? или я могу импортировать другой файл рабочего сервиса?

...