【问题标题】:Can I fire up a Chrome extension API from code?我可以从代码中启动 Chrome 扩展 API 吗?
【发布时间】:2015-06-16 07:05:18
【问题描述】:

是否可以在网站内启动 Google Chrome 扩展程序?例如,运行一些将启动扩展 UI 的 javascript?

我正在构建一个网络应用程序,它允许用户截取他们的桌面截图并进行编辑。我已经使用dektopCapture 启动并运行了一个示例扩展,但它是一种“应用”风格的扩展。

  • 它允许选择要从中流式传输的窗口,然后获取 保存为图像字符串的扩展 UI(使用按钮)中的快照

我的问题是:

是否可以从我的网络应用程序(可能是一个按钮)中启动 desktopCapture UI(获取可用窗口以进行流式传输的窗口),获取流并将其放置在其中的画布/HTML5 视频元素上我的网络应用?

我想我可以在扩展程序中连接一个事件监听器并使用runtime.onMessage 在我的应用程序中发布消息

注意事项

如果有更直观的方法可以做到这一点,我可以走这条路 - 例如,如果我可以在 Web 应用程序保持尽可能多的交互,而只在后台运行扩展程序,那将变得更好。

扩展名的类型为browser_action,但我希望它适用于单个页面(应用程序的网页),所以如果它可以在page_action 中使用,我更喜欢它。如果我可以从网页中触发它,真的不需要 browser_action 图标

我还计划构建一个 FF 扩展,因此也感谢任何见解。

【问题讨论】:

  • @VasiliyVanchuk 这似乎是在处理来回发送消息
  • 因此你不能保证用户有你的扩展 - pobable buble events up - 更好的方法
  • @NicholasKyriakides 这是page_action吗?如果是这样,我还没有找到以编程方式启动它们的方法
  • 发送消息似乎是唯一的方法。这样,您应该同时拥有网站 javascript 和扩展 javascript。一个消息发送者和一个消息监听者。

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

所以我在回答我自己的问题。

我已经设法使用externally_connectables 让它工作。

externally_connectable 清单属性声明哪个 扩展程序、应用程序和网页可以通过以下方式连接到您的扩展程序 runtime.connect 和 runtime.sendMessage。

1。在 manifest.json 中声明应用/网页

只需在manifest.json 中将您的网络应用/页面声明为externally_connectable

例如,我想连接我的应用托管在 Github Pages 上,并且我的域名为 https://nicholaswmin.github.io,所以它有点像这样:

"externally_connectable": {
  "matches": ["https://nicholaswmin.github.io/*"]
}, //rest of manifest.json

2。为 background.js 中的消息设置事件监听器

然后在您的background.js 中设置一个事件监听器,如下所示:

chrome.runtime.onMessageExternal.addListener(function(request, sender, sendResponse) {
 //Stuff you want to run goes here, even desktopCapture calls
});

3。从您的网页/应用页面发送消息

然后像这样在您的网络应用/网站中调用它:

chrome.runtime.sendMessage("APP ID GOES HERE", 
                       {data: { key : "capture"}});

确保您的网站在您的manifest.json 中正确声明为externally_connectable,并且您在发送消息时传递了app-id

【讨论】:

  • 您好!我想知道我在哪里可以获得应用程序ID?我正在使用 reactjs,它有自己的 manifest.json,里面有名字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2012-03-29
  • 2014-08-05
  • 1970-01-01
  • 2015-09-18
相关资源
最近更新 更多