如何在*同一* Google Chrome 扩展程序的两个实例之间传递消息?
而 Google Chrome 的消息 API 允许两个不同的扩展程序使用其“扩展程序 ID”进行通信,我还没有看到相同扩展的两个实例之间的通信问题得到解决。使用当前的 Google Chrome API 可以实现这一点吗?是否有一个“实例 ID”来唯一标识我的扩展的每个实例?
如果没有,我想我会尝试使用我自己的服务器作为“中间人”,并让我的扩展的所有实例使用我的“中间人”相互通信。在这种情况下,Chrome API 是否会公开扩展程序的实例 ID?如果没有,对于制定我自己的实例 ID 方案有什么建议吗?
While Google Chrome's messaging API allows communication between two different extensions using their 'Extension ID', I'm yet to see the issue of communication between two instances of the same extension be addressed. Is this possible using the current Google Chrome API? Is there an 'Instance ID' to uniquely identify each instance of my extension?
If not, I think I will try using my own server be the -middle man- and let all the instances of my extension talk to each other using my -middle man-. In that case, does the Chrome API expose the Instance ID for extensions? If not, any advice on coming up with my own Instance ID scheme?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你当然可以这样做,我已经为我的重新加载所有选项卡扩展做了同样的事情。
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
you can certainly do that, I have done the same thing for my Reload All Tabs extension.
https://chrome.google.com/extensions/detail/bfenodnbilondijnaionekngdhadmegk
Basically, you would need an "extension ID" what I did, I basically uploaded the main extension to the gallery, which gave me the unique ID.
With that ID, you can send requests to that extension via:
http://code.google.com/chrome/extensions/extension.html#method-sendRequest
And listen through external extension requests through:
http://code.google.com/chrome/extensions/extension.html#event-onRequestExternal
You can take a look at the source code for Reload All Tabs, to see how it is done:
https://github.com/mohamedmansour/reload-all-tabs-extension