1

我一直在尋找Web Notification API或Desktop Notification API。我瞭解它是如何構建的以及它支持的屬性和事件的數量。通知意味着從瀏覽器中分離出來,即使瀏覽器被最小化,例如仍然可以顯示通知。Web /桌面通知API - 在刷新頁面時強制關閉所有通知

我的問題是,有沒有辦法將通知與網頁上的操作相關聯?特別是,我想在刷新頁面時關閉所有通知對話。我怎樣才能做到這一點?

在此先感謝。

回答

3

你沒有提到服務工作者,但我會假設你有一個,因爲你需要它的推送和通知API。

當頁面加載時,您可以向服務工作人員發送消息,指示它關閉所有通知。然後,您可以做到這一點的工人這樣的範圍內:

self.getNotifications().then(function(notifications){ 
    notifications.forEach(function(notification){ 
    notification.close() 
    }) 
}) 

但是你可以跳過消息給服務人員,只是通過服務人員登記做到這一點從頁面如下:

navigator.serviceWorker.getRegistration().then(function(registration){ 
    registration.getNotifications().then(function(notifications){ 
    notifications.forEach(function(notification){ 
     notification.close() 
    }) 
    }) 
}) 

不過,請注意,getNotifications()僅適用於Chrome 44。在Chrome 44之前或其他瀏覽器中,我不相信有辦法做到您想要的。