请求特定的外部协议时是否可以打开 chrome 扩展程序?

Can a chrome extension be opened when requesting specific external protocol?

我想写一个 chrome 当浏览器重定向到特定外部协议时触发的扩展:myApp://...

我用谷歌搜索了一下,没有找到一种简单的元数据方法。

有没有办法在清单中定义它?

然后我希望扩展程序打开一个弹出窗口,我会在我的自动化测试中等待它。

理论上,您可以使用 protocol handler with navigator.registerProtocolHandler,但有一些限制:

  • 自定义协议 必须 以 Chrome 中的 web+ 开头,例如web+myApp:
  • 无法在清单中声明它;根据 this feature request 添加这种可能性,目前它将为用户弹出一个 allow/deny 信息栏。

无论如何,opening a popup programmatically is impossible。最多只能在一个tab中打开一个扩展页面。