Откройте страницу в том же окне, когда пользователь нажимает на уведомление

#javascript #flutter #push-notification #javascript-objects #flutter-web

Вопрос:

Я хочу открыть ссылку уведомления на той же странице, и теперь я использую return client.openWindow(navUrl); но есть одна проблема, она открыта на другой вкладке. Может ли кто-нибудь помочь мне или помочь мне понять разницу между Window и windowClients, потому что я не знаю о javascript и мне нужно заполнить для push-уведомления.

Кроме того, окно не работает в моем firebase-messaging-sw.js файл

здесь я прикрепил свой код

 event.waitUntil(
  clients.matchAll({
    type: 'window',
    includeUncontrolled: true
  }).then(windowClients => {
    // Check if there is already a window/tab open with the target URL
    for (let i = 0; i < windowClients.length; i  ) {
      var client = windowClients[i];
      // If so, just focus it.
      console.log('here');
      if (client.url.startsWith(OriginalUrl) amp;amp; 'focus' in client) {
        console.log('window found');
        // client.claim().then(()=>{
        //  console.log('claimed');
        //  client.focus().then(function(windowClient) {
        //      console.log('focusing');
        //      windowClient.focus();
        //      console.log('focused');
        //      // windowClient.navigate(navUrl);
        //    });
        // });
        // break;
        return clients.openWindow(navUrl);
      }
    }
    // If not, then open the target URL in a new window/tab.
    // if (clients.openWindow) {  
    //  console.log('window not found opening new');
    //  event.waitUntil(clients.claim());// this 
    //     return clients.openWindow(navUrl);
    // }
  })
);
 

Комментарии:

1. Пожалуйста, отобразите свой код в блоке кода, заключив его в тройной ` (серьезный акцент).