渐进式网络应用程序中的重定向
Redirection in progressive web app
我试图在点击通知时重定向到渐进式网络应用程序中的特定 url,但它没有重定向。
情况 1:如果 Web 应用程序未添加到主屏幕,则在收到通知时单击浏览器 window 打开并重定向到所需的 url。
情况 2:如果将 Web 应用程序添加到主屏幕,则着陆页是主页,而不是所需的 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();
});
}
这对我有用。也可以有其他方式。
我试图在点击通知时重定向到渐进式网络应用程序中的特定 url,但它没有重定向。
情况 1:如果 Web 应用程序未添加到主屏幕,则在收到通知时单击浏览器 window 打开并重定向到所需的 url。
情况 2:如果将 Web 应用程序添加到主屏幕,则着陆页是主页,而不是所需的 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();
});
}
这对我有用。也可以有其他方式。