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