最近我在Chrome网上应用店中遇到了名为Type Fu的Webapp。令我惊讶的是,他们实际上创造了一个真正的无铬窗户。
我想我是否可以在Chrome扩展程序中执行此操作,因为在大多数部分他们使用相同的API。但是,我找不到任何可以让我这样做的东西。
chrome.tabs.create
根本没用。
如果我不能在延期中这样做,那将是一种疯狂,因为在我看来,一个扩展应该有更多的权力"而不是webapp(基本上是一个网页)。
我无法按Ctrl + Shift + I甚至右键单击它。它就像我计算机上的真正原生程序一样。
有些按钮会打开另一个浮动的无铬窗口。
答案 0 :(得分:6)
...在大多数地方,他们使用相同的API
Chrome扩展程序旨在与浏览器进行交互。 Chrome打包应用程序设计为独立应用程序,可独立于浏览器运行。他们的API有now widely diverged。只需查看API listings for apps和the equivalent listing for extensions,您就会发现它们完全不同。
在这种情况下,类型Fu使用chrome.app.window
API,尤其是frame: 'none'
函数的create
选项。
正如app.window
的名称所示,它仅适用于应用包,而不是扩展程序。基于扩展程序的chrome.windows.create
方法will eventually support a type: 'panel'
option,提供视觉上类似的功能(在Google的Hangouts extension中查看)。它在API中描述了一个注释:
“
panel
”和“detached_panel
”类型会创建弹出窗口,除非设置了“--enable-panels
”标记。
目前只有环聊被列入白名单以使用面板,但Having panel behavior in chrome extension上的讨论表明,您的扩展程序可以通过向您的清单添加特定key
值来假装为环聊:
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsDApubb73tPfYlNIFxDu3K3/EHgV6/YOJXJkld1OZ20jW/cOht1j0NggnXhQYuu1mXFUufud4I2N7b5ydyg09gcM9Va3Zk17RhNV9smbPHOd4XlzJeXifX/9MgHPu4FzCen3CiSXsOeAELJIXEuT28xICriuUko/rNPwGeIB9VwIDAQAB"
但是,我不会依赖这种无证的行为;谷歌很可能会修复它,或者它可能在将来破坏其他东西。
在完全支持面板之前,您可以使用--enable-panel
浏览器标记开始开发扩展程序,并希望在完成开发后默认启用该功能。