2

所以最近我在 Chrome Web Store 上遇到了一个名为 Type Fu 的 Web 应用程序。令我惊讶的是,他们实际上创造了一个真正的无铬窗。

在此处输入图像描述

我正在考虑是否可以在 Chrome 扩展程序中做到这一点,因为在大多数情况下它们使用相同的 API。但是,我找不到任何可以让我做这种效果的东西。

chrome.tabs.create一点用都没有。

如果我不能在扩展中做到这一点,那将是疯狂的,因为在我看来,扩展应该比 web 应用程序(基本上是网页)具有更多的“权力”。

我无法按 Ctrl + Shift + I 甚至无法右键单击它。它就像我电脑上真正的原生程序。

一些按钮将打开另一个浮动无镶边窗口。

在此处输入图像描述

4

1 回答 1

6

...在大多数情况下,他们使用相同的 API

Chrome 扩展程序旨在与浏览器交互。Chrome 打包应用程序设计为独立的,并且独立于浏览器运行。他们的 API现在已经大相径庭了。只需查看应用程序的 API 列表扩展的等效列表,您就会发现它们完全不同。

在这种情况下,Fu 型使用chrome.app.windowAPI,尤其是函数的frame: 'none'选项create

顾名思义app.window,它只适用于打包应用程序,而不是扩展程序。基于扩展的chrome.windows.create方法最终将支持一个type: 'panel'选项,该选项将提供视觉上相似的功能(在 Google 的Hangouts 扩展中查看它的工作原理)。它在 API 中进行了描述,并附有注释:

' panel' 和 ' detached_panel' 类型会创建一个弹出窗口,除非--enable-panels设置了 ' ' 标志。

目前只有环聊被列入使用面板的白名单,但在 Chrome 扩展中具有面板行为的讨论表明,您的扩展可以通过向清单添加特定key值来伪装成环聊:

"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsDApubb73tPfYlNIFxDu3K3/EHgV6/YOJXJkld1OZ20jW/cOht1j0NggnXhQYuu1mXFUufud4I2N7b5ydyg09gcM9Va3Zk17RhNV9smbPHOd4XlzJeXifX/9MgHPu4FzCen3CiSXsOeAELJIXEuT28xICriuUko/rNPwGeIB9VwIDAQAB"

但是,我不会依赖这种无证行为;谷歌可能会修复它,或者它可能会在未来破坏其他东西。

在完全支持面板之前,您可以开始使用--enable-panel浏览器标志开发扩展程序,并希望在完成开发后默认启用该功能。

于 2013-08-15T16:00:33.723 回答