1

Что я пытаюсь сделать, это посмотреть, открыта ли вкладка на моем веб-сайте в Chrome, и если это так сосредоточено на ней И пересылайте их на новый URL-адрес, который я передаю через.Уведомления службы PushWorer Chrome - переслать на новую страницу

Для справки, когда вы видите «event.notification.data» будет ссылка, такие как «https://www.example.com/mobile/profile.php?id=Webmaster»

я могу сосредоточиться на вкладке, но я не могу сделать, что вкладка перенаправлять на URL I которые хранятся в «event.notification.data»

Вот мой код

self.addEventListener('notificationclick', function(event) { 
    event.notification.close(); 
    event.waitUntil(
    clients.matchAll({ 
     type: "window" 
    }) 
    .then(function(clientList) { 
     // loop through all the tabs 
     for (var i = 0; i < clientList.length; i++) { 
     var client = clientList[i]; 
     //check if a tab starts with the websites name 
     if (client.url.indexOf("https://www.example.com/mobile") == 0 && 'focus' in client){ 
      //a tab matched! Check if the data (a link) is there 

      //------ 
      //THIS IS WHERE I NEED HELP 
      //------ 
      if(event.notification.data != ''){ 
      //yes! event.notification.data is a link, focus on the tab and forward them there 
      client.focus(); 
      client.navigate(event.notification.data); 
      } else { 
      //no! event.notification.data was blank, focus on the tab and forward them to the general site 
      client.focus(); 
      client.navigate('https://www.example.com/mobile'); 
      } 

     } 
     } 
     if (clients.openWindow) { 
     if(event.notification.data != ''){ 
      clients.openWindow(event.notification.data); 
     } else { 
      clients.openWindow('https://www.heftynet.com/mobile'); 
     } 
     } 
    }) 
); 
}); 

ответ

2

похоже client.navigate() еще не реализована (по состоянию на 10 сентября 2015 года), и даже не в Chrome Canary. It was specified only a few months ago, в июне 2015 года. Здесь feature status page и соответствующие Chromium ticket. Ваш код, вероятно, будет работать после того, как будет реализован navigate().

+0

Я читал много таких, но я думаю, я не хотел в это верить. Спасибо за помощь. – dbye

+0

Вы также можете зайти в инспектор и убедиться сами. Я проверил это в Canary, получив объект client и увидев, что на его свойстве '__proto__' у него был метод' focus() ', но метод' navigate() '. –