当用户点击后端生成的通知时,我会打开一个新窗口,在浏览器上这很好用,因为当浏览器已经打开时它会打开一个新标签页,否则会打开一个新窗口。
但是如果我安装了PWA应用,在点击通知时,它会打开一个新的浏览器窗口而不是打开PWA应用。
这是我的notificationclick事件代码:
如果PWA应用正在运行,我会调用focus()函数,然后再导航到url,但如果PWA应用关闭,我就无法打开PWA应用并调用focus和navigate函数。
event.waitUntil(clients.matchAll({
type: "window"
}).then(function (clientList) {
console.log('clientList: ', clientList);
if (data.WebUrl) {
for (var i = 0; i < clientList.length; i++) {
var client = clientList[i];
console.log('client: ', JSON.stringify(client), client);
if ('focus' in client) {
client.focus();
// try to navigate to the url in the focused client
client.navigate(data.WebUrl).then((response) => {
event.notification.close();
});
break;
}
else {
clients.openWindow(data.WebUrl);
event.notification.close();
}
}
}
}));
有没有一种方法可以通过编程方式打开PWA?