我可以从代码中启动 Chrome 扩展 API 吗?
Can I fire up a Chrome extension API from code?
是否可以在网站内启动 Google Chrome 扩展程序?例如 运行 一些 javascript 将启动扩展 UI?
我正在构建一个网络应用程序,允许用户截取他们的桌面屏幕截图并进行编辑。我有一个示例扩展,运行ning 使用 dektopCapture,但它是扩展的 'app' 样式。
- 它允许 select 一个 window 从中流式传输,然后取一个
扩展 UI(使用按钮)中保存为图像字符串的快照
我的问题是:
是否可以从我的网络应用程序中启动 desktopCapture UI(window 获取可用的 windows 以进行流式传输),也许是一个按钮,获取流并将其放置在我的网络应用程序中的 canvas/HTML5 视频元素上?
我想我可以在扩展中连接一个事件侦听器并使用 runtime.onMessage 到 post 来自我的应用程序
的消息
备注:
如果有更直观的方法来做到这一点,我可以走那条路 - 例如,如果我可以在 网络应用程序 中保持尽可能多的交互 只有扩展名 运行宁在后台,那就更好了。
扩展是 browser_action
类型,但我希望它适用于单个页面(应用程序的网页),所以如果它可以在 page_action
中使用,我更愿意这样做.如果我可以从网页中触发它,那么真的不需要 browser_action 图标
我还计划构建一个 FF 扩展,因此也欢迎任何见解。
所以我在回答我自己的问题。
我已经设法使用 externally_connectables 使其正常工作。
The externally_connectable manifest property declares which
extensions, apps, and web pages can connect to your extension via
runtime.connect and runtime.sendMessage.
1。在 manifest.json
中声明 app/webpage
只需在 manifest.json
中将 web-app/page 声明为 externally_connectable
。
例如,我想连接我的应用托管在 Github 页面上,我的域名是 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。从您的 web/app 页面
发送消息
然后从您的 web-app/website 中这样调用它:
chrome.runtime.sendMessage("APP ID GOES HERE",
{data: { key : "capture"}});
确保您的网站在 manifest.json
中正确声明为 externally_connectable
并且您在发送消息时传递了应用程序 ID
是否可以在网站内启动 Google Chrome 扩展程序?例如 运行 一些 javascript 将启动扩展 UI?
我正在构建一个网络应用程序,允许用户截取他们的桌面屏幕截图并进行编辑。我有一个示例扩展,运行ning 使用 dektopCapture,但它是扩展的 'app' 样式。
- 它允许 select 一个 window 从中流式传输,然后取一个 扩展 UI(使用按钮)中保存为图像字符串的快照
我的问题是:
是否可以从我的网络应用程序中启动 desktopCapture UI(window 获取可用的 windows 以进行流式传输),也许是一个按钮,获取流并将其放置在我的网络应用程序中的 canvas/HTML5 视频元素上?
我想我可以在扩展中连接一个事件侦听器并使用 runtime.onMessage 到 post 来自我的应用程序
的消息备注:
如果有更直观的方法来做到这一点,我可以走那条路 - 例如,如果我可以在 网络应用程序 中保持尽可能多的交互 只有扩展名 运行宁在后台,那就更好了。
扩展是 browser_action
类型,但我希望它适用于单个页面(应用程序的网页),所以如果它可以在 page_action
中使用,我更愿意这样做.如果我可以从网页中触发它,那么真的不需要 browser_action 图标
我还计划构建一个 FF 扩展,因此也欢迎任何见解。
所以我在回答我自己的问题。
我已经设法使用 externally_connectables 使其正常工作。
The externally_connectable manifest property declares which extensions, apps, and web pages can connect to your extension via runtime.connect and runtime.sendMessage.
1。在 manifest.json
中声明 app/webpage只需在 manifest.json
中将 web-app/page 声明为 externally_connectable
。
例如,我想连接我的应用托管在 Github 页面上,我的域名是 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。从您的 web/app 页面
发送消息然后从您的 web-app/website 中这样调用它:
chrome.runtime.sendMessage("APP ID GOES HERE",
{data: { key : "capture"}});
确保您的网站在 manifest.json
中正确声明为 externally_connectable
并且您在发送消息时传递了应用程序 ID