如何在*相同* Google Chrome扩展程序的两个实例之间传递邮件?

时间:2010-11-18 14:37:32

标签: google-chrome messaging p2p

虽然Google Chrome浏览器的messaging API允许使用其“扩展ID”在两个不同的扩展程序之间进行通信,但我还没有看到相同扩展名的两个实例之间的通信问题得到解决。这可以使用当前的Google Chrome API吗?是否有“实例ID”来唯一标识我的扩展程序的每个实例?

如果没有,我想我会尝试使用我自己的服务器作为中间人 - 并让我的扩展的所有实例使用我的中间人 - 彼此交谈。在这种情况下,Chrome API是否会为扩展程序公开实例ID ?如果没有,有任何关于提出我自己的Instance ID计划的建议吗?

1 个答案:

答案 0 :(得分:1)

你当然可以这样做,我为我的Reload All Tabs扩展做了同样的事情。 https://chrome.google.com/extensions/detail/bfenodnbilondijnaionekngdhadmegk

基本上,我需要一个“扩展ID”,我基本上将主扩展名上传到了库中,这给了我唯一的ID。

使用该ID,您可以通过以下方式向该扩展发送请求: http://code.google.com/chrome/extensions/extension.html#method-sendRequest

通过以下方式收听外部扩展请求: http://code.google.com/chrome/extensions/extension.html#event-onRequestExternal

您可以查看Reload All Tabs的源代码,了解它是如何完成的: https://github.com/mohamedmansour/reload-all-tabs-extension