24

我需要將僅適用於Chrome打包應用程序(訪問syncFileSystem)的功能和僅在Chrome擴展程序中注入的功能(將腳本注入第三方網站)結合使用。在Chrome打包的應用和Chrome擴展之間進行通信?

看來,打包的應用程序和擴展程序都不能實現這兩種功能,所以我現在正在考慮嘗試實現我在使用單獨的打包應用程序和擴展通信之後所做的事情。

我看到Chrome's documentation解釋瞭如何將兩個擴展可以通過chrome.runtime.onMessageExternal.addListenerchrome.runtime.sendMessage溝通,但沒有關於打包應用程序和通信擴展。

有誰知道這是否允許?有沒有任何文檔或工作示例?

回答

17

是的,那是可能的。您鏈接的文檔中的代碼示例適用於應用程序和擴展程序的任意組合。

chrome.runtime.sendMessage擴展文檔說:

發送單個消息給onMessage事件偵聽器的延伸部(或另一個擴展程序/應用)內。

消息傳遞在擴展和應用程序中都是一樣的,它們似乎完全兼容;只需使用目標擴展程序或應用程序的ID即可。如果您查看app version of chrome.runtime.sendMessage的文檔,您會看到它與擴展版本相同。

+1

如果您最終將應用程序和擴展程序捆綁在一起,那將非常好。我希望能夠通過一次點擊來安裝它們,理想情況下,它們可以從兩者中的任何一個向另一個加售。並會檢測應用程序是否安裝要求它在後臺權限模式? – kzahel

+2

@ mangini的鏈接不再適用,但您可以嘗試:[https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/messaging](https://github.com/GoogleChrome/)鉻APP-樣本/樹/主/樣品/消息)。 – falconepl

+1

@apsillers,而不是讓用戶同時安裝應用程序和擴展,有沒有將它們組合成一個單元,以便用戶只進行一次安裝操作? – Pacerier