在Chrome打包应用和Chrome扩展之间进行通信的方法?

26

我需要结合仅限于Chrome打包应用程序的功能(访问syncFileSystem)和仅限于Chrome扩展的功能(将脚本注入第三方网站)。

似乎打包应用程序和扩展都无法同时实现这两个功能,所以我现在考虑尝试使用通过通信实现我想要的分别打包应用程序和扩展。

我发现Chrome文档解释了如何通过chrome.runtime.onMessageExternal.addListenerchrome.runtime.sendMessage使两个扩展之间进行通信,但没有关于打包应用程序和扩展之间通信的内容。

请问是否有人知道这是否允许? 是否有文档或可用的示例?

1个回答

19

是的,这是可能的。您链接的文档中的代码示例适用于任何应用程序和扩展程序的组合。

chrome.runtime.sendMessage 的扩展文档说明:

向扩展 (或其他扩展/应用程序) 中的 onMessage 事件侦听器发送单个消息。

在扩展和应用程序中,消息传递方式相同,并且它们似乎完全兼容;只需使用目标扩展或应用程序的 ID 即可。如果查看 chrome.runtime.sendMessage 的应用程序版本的文档,您会发现它与扩展版本完全相同。


1
能够看到您最终如何将应用程序和扩展捆绑在一起将非常棒。最好能够通过一个点击安装它们两个,但如果能从其中一个向另一个进行某种升级也可以接受。检测应用程序是否已安装需要它处于后台权限模式吗? - kzahel
2
@mangini的链接已经失效了,但你可以尝试这个链接:https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/messaging。 - falconepl
1
@apsillers,不需要让用户安装应用和扩展程序两个部分,有没有办法将它们合并成一个单元,使用户只需执行一次安装操作? - Pacerier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接