2016-02-05 71 views
2

我有一個「通知」系統,在用戶權限下彈出一個帶有可選音效的new Notification,以通知用戶發生的事情。在網絡應用程序和擴展程序之間共享localStorage

但是有一個限制,意味着當沒有打開瀏覽器選項卡時通知不會出現,因爲沒有運行「檢查通知」JavaScript代碼的實例。

爲了解決這個問題,我想製作一個瀏覽器擴展,首先是Chrome,然後是其他瀏覽器。

使用localStorage來處理多個選項卡來協商互斥並跨選項卡傳遞數據。結果是它們全部同時更新,只有其中一個觸發桌面通知/音效。

瀏覽器擴展是否可能(從Chrome瀏覽器開始,其他瀏覽器被認爲不太重要)從Web應用程序中讀取相同的localStorage,從而加入通信?

+1

我應該期待你在接下來的幾分鐘內回答嗎? – Tushar

+0

@Tushar Heh,no。這是一個真正的問題XD –

+2

對於Chrome和Firefox,您的後端可以發送[推送通知](https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web ?hl = en),這樣即使網站選項卡未打開(但瀏覽器必須),也可以接收通知。 [MDN的使用推送API文章](https://developer.mozilla.org/en-US/docs/Web/API/Push_API/Using_the_Push_API) –

回答

1

瀏覽器擴展是否可能(同樣,Chrome首先,其他瀏覽器被認爲不太重要)從Web應用程序讀取相同的localStorage,從而加入通信?

是的,但只有當頁面打開。內容腳本將與頁面共享其localStorage,並且沒有其他API可以訪問它。


這就是說,我同意帕特里克埃文斯的評論:擴展是一個繁瑣的解決方案只用於通知。新的Push API是一個很好的選擇(也適用於手機!),這個Google codelab是一個很好的介紹。

相關問題