2017-08-15 58 views
0

當使用服務人員實施推送通知時,我們可以直接將通知推送到端點。但在我的網站上,通知是從外部API獲取的。那麼,我的服務人員有沒有辦法通知投票通知,以便我可以確定是否存在新的通知?我們可以輪詢服務人員的通知嗎

回答

1

如果您的Web應用程序已打開,則可以通過檢查某些條件(輪詢API等)並使用Notifications API來顯示通知。

這不需要服務人員。使用服務工作人員+ push事件觸發您的通知意味着即使您的Web應用程序已關閉,您的通知也會顯示,並且依靠收聽push事件與重複輪詢API也更有效。

理論上,除了註冊監聽push事件的服務工作人員之外,您理論上還可以使用輪詢和在Web應用程序打開時顯式調用Notifications API的組合。但是,如果您正在努力支持服務工作者用例,那麼僅僅依靠服務工作人員來處理所有通知可能會更清晰。

這兩種方法之間的一個區別是,當您的Web應用程序爲supported in more browsers(截至2017年8月)時,使用通知API比基於服務人員的推送通知要多。

+0

我的要求是即使應用程序關閉也顯示推送通知。所以我使用的是服務人員,並且我正在從服務器獲取通知。我的問題是,我的應用程序中有一組通知從外部API獲取。我希望這些通知也可以推送給客戶端。因此,爲所有用戶獲取這些通知可能非常乏味。所以我想,我會輪詢來自服務人員的外部API以獲取新的通知,並通知我的服務器,然後從我的服務器中推送這些通知。這可能嗎? – Stanly

+0

在服務人員的'push'事件處理程序內部,您可以使用'fetch'來進行其他API調用並獲取有關您顯示的特定通知的詳細數據。所以'push'可以「喚醒」SW,然後SW可以使用任何你想顯示通知的邏輯。唯一的限制是,當您處理「push」事件時,您通常應該顯示*至少一個通知,但https://developers.google.com/web/updates/2017/06/budget-api會稍微改變一點。 –

相關問題