알림 클릭시 프로그레시브 웹 응용 프로그램의 특정 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();
});
}
:
''http : // localhost/#/view-car ... '와 같은 전체 URL을 사용하는 것이 좋습니다. –