是否可以在网站内启动Google Chrome扩展程序?例如,运行一些将启动扩展UI的JavaScript?
我正在构建一个网络应用程序,该应用程序将允许用户拍摄桌面截图并进行编辑。我已经使用dektopCapture启动并运行了一个示例扩展程序,但这是扩展程序的“应用程序”样式。
我的问题是:
是否可以从我的网络应用程序中(可能是一个按钮)启动desktopCapture UI(获取要从中流式传输的窗口的窗口),将其流式传输并将其放置在我的网络中的canvas / HTML5视频元素上,应用程式?
我想我可以在扩展中连接一个事件侦听器,并使用runtime.onMessage从我的应用程序内发布消息
注意事项:
如果有更直观的方法,我可以走那条路-例如,如果我可以在Web应用程序内保持尽可能多的交互,而仅在后台运行扩展程序,那会更好。
扩展名是类型,browser_action
但我希望它适用于单个页面(应用程序的网页),因此,如果可以在单个页面中使用它,page_action
我会更喜欢。如果我可以从网页内触发此图标,则实际上无需使用browser_action图标
我还计划构建FF扩展程序,因此也欢迎您提出任何见解。
所以我在回答我自己的问题。
我设法使用externally_connectables使其工作。
externally_connectable清单属性声明可以通过runtime.connect和runtime.sendMessage将哪些扩展程序,应用程序和网页连接到您的扩展程序。
只需将您的Web应用程序/页面声明manifest.json
为即可externally_connectable
。
例如,我想连接我的应用程序托管在Github Pages上,并且我的域名为https://nicholaswmin.github.io,所以它有点像这样:
"externally_connectable": {
"matches": ["https://nicholaswmin.github.io/*"]
}, //rest of manifest.json
然后background.js
像这样设置事件监听器:
chrome.runtime.onMessageExternal.addListener(function(request, sender, sendResponse) {
//Stuff you want to run goes here, even desktopCapture calls
});
并从您的Web应用程序/网站中调用它,如下所示:
chrome.runtime.sendMessage("APP ID GOES HERE",
{data: { key : "capture"}});
确保在您的网站中将您的网站正确声明为externally_connectable
,manifest.json
并且在发送消息时您正在传递app-id
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句