2016-06-23 107 views
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

相關問題