1

알림 클릭시 프로그레시브 웹 응용 프로그램의 특정 URL로 리디렉션하려고하지만 리디렉션하지 않습니다.프로그레시브 웹 응용 프로그램에서 리디렉션

사례 1 : 웹 응용 프로그램이 홈 화면에 추가되지 않은 경우 알림을 클릭하면 브라우저 창이 열리고 원하는 URL로 리디렉션됩니다.

사례 2 : 웹 응용 프로그램이 홈 화면에 추가 된 경우 방문 페이지는 원하는 URL이 아닌 홈 페이지입니다.

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); 
           } 
         } 
       }) 
     ); 
}); 

미리 감사드립니다. 이것은 나를 위해 일한

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

:

+0

''http : // localhost/#/view-car ... '와 같은 전체 URL을 사용하는 것이 좋습니다. –

답변

3

당신은 같은 것을 사용할 수 있습니다. 다른 방법도있을 수 있습니다.

+0

Awesomeee Dudeee !!! 매력처럼 작동합니다. Thanxx a tonn : D. –

+1

창이 열려 있으면 어떨까요? – anshulix