1

我正在尝试重定向到渐进式网页应用程序上的通知点击中的特定网址,但它没有重定向。案例1:如果网页应用没有添加到主屏幕,然后通知单击浏览器窗口打开并重定向到所需的网址。案例2:如果网页应用添加到主屏幕,则着陆页是主页,而不是期望的网址。在渐进式网络应用程序中重定向

self.addEventListener('notificationclick', function(event) { 
     event.notification.close(); 
     event.waitUntil(
       clients.matchAll({ 
         type: "window" 
       }).then(function(clientList) { 
         console.log(clientList); 
         for (var i = 0; i < clientList.length; i++) { 
           var client = clientList[i]; 
           if (client.url == '/' && 'focus' in client) 
             return client.focus(); 
         } 
         if (clients.openWindow) { 
           if (event.notification.tag == 'syncTest') { 
             console.log(event); 
             var url = '/#/view-car?start_time=' + getFinalData[0].start_time + '&end_time=' + getFinalData[0].end_time + '&pickup_venue=' + getFinalData[0].pickup_venue; 
             return clients.openWindow(url); 
           } else { 
             var url = '/#/list-venues?start_time=' + getFinalData[0].start_time + '&end_time=' + getFinalData[0].end_time + '&car=' + getFinalData[0].car + '&fuel=' + getFinalData[0].fuel; 
             console.log(url); 
             return clients.openWindow(url); 
           } 
         } 
       }) 
     ); 
}); 

谢谢提前tonnn !!。

+0

我建议尝试使用完整的URL,比如''http:// localhost /#/ view-car ...'' –

回答

3

您可以使用类似:

if (client.url == 'yourUrl' && 'focus' in client) 
    return client.focus(); 
else{ 
    client.navigate('yourUrl').then(function(c){ 
      return c.focus(); 
    });  
} 

这为我工作。还可以有其他方式。

+0

Awesomeee Dudeee !!!奇迹般有效。 Thanxx一吨:D。 –

+1

怎么样,如果窗口已经打开? – anshulix

相关问题