2
我已經建立了一個web推送系統,它工作得很好。webpush,如果沒有標籤如何打開窗口
我遇到的問題是,在Mac上,如果用戶打開Firefox但沒有打開任何頁面,當他收到通知時,點擊將丟失。 我 噸根本不做任何事情。
這裏的相關部分
self.addEventListener('push', function(event) {
var jsonObj = event.data.json();
var title = jsonObj.title;
event.waitUntil(
self.registration.showNotification(title, {
'body': jsonObj.body,
'icon': jsonObj.icon,
'href': jsonObj.href,
'tag': jsonObj.tag
}));
self.addEventListener('notificationclick', function(event) {
event.notification.close();
var href = jsonObj.href;
var tag = jsonObj.tag;
if (clients.openWindow) {
clients.openWindow(href);
}
/*
// This looks to see if the current is already open and
// focuses if it is
event.waitUntil(
clients.matchAll({
type: "window"
})
.then(function(clientList) {
for (var i = 0; i < clientList.length; i++) {
var client = clientList[i];
if (client.url == href && 'focus' in client)
return client.focus();
}
if (clients.openWindow) {
return clients.openWindow(href);
}
})
);
*/
});
});
謝謝,我會做一些測試併發布結果。 – sathia
它似乎按預期工作,但它不能打開一個窗口,如果瀏覽器沒有:( – sathia
目前Firefox中有一個錯誤,當沒有窗口打開(https:///bugzilla.mozilla.org/show_bug.cgi?id=1226434)。 – Marco