Getting: Uncaught (in promise) TypeError: Something went wrong while trying to open the window

Viewed 119

This is my code in service worker for notification click event. All are working fine. But this console error Uncaught (in promise) TypeError: Something went wrong while trying to open the window. is appeared when I click the action button.

Why is this console error shown?

self.addEventListener('notificationclick', e => {
  const nf = e.notification;
  nf.close();
  if (!e.action) {
    if(nf.data && nf.data.url)
    {
      const url = nf.data.url;
      urltoopen(url,e);
    }
    return;
  }
  if(e.action === 'close'){
    return;
  }
  if(nf.data && nf.data.listurl)
  {
    const listurl = nf.data.listurl;
    Object.keys(listurl).forEach((k) => {
      if(k===e.action)
      {
        const actionurl=listurl[k];
        urltoopen(actionurl,e);
      }
    });
  }
});

function urltoopen(url,e) {
  const urlToOpen = new URL(url, self.location.origin).href;
  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);
    }
  });
  e.waitUntil(promiseChain);
}
0 Answers
Related