在浏览器标签中运行Chrome打包应用

时间:2013-01-12 21:34:51

标签: javascript google-chrome google-chrome-app

我想使用为Chrome打包应用程序提供的新API,但也希望保留在当前浏览器环境中打开某些本地URL的功能,是否可能?所有打包应用程序教程都专注于创建单独的窗口并将app用作系统中的一等公民。

也许它可能会像往常一样使用chrome.socket和其他API,甚至可能只在开发人员模式下使用?

2 个答案:

答案 0 :(得分:11)

不,这是不可能的设计。 Chrome打包应用程序与浏览器分开运行,无法访问特定于浏览器的功能,例如标签。您最接近的是通过window.open在浏览器中打开外部(不在打包的应用程序中)URL。

但是,您可以使用webview标记来模拟浏览器。请参阅the code of the Browser sample了解如何操作。

您还可以使用刚刚发布的消息传递API安装与您打包的应用程序对话的扩展程序。请参阅the messaging sample了解具体方法 - 只要您了解应用和扩展ID,就会非常简单。

答案 1 :(得分:4)

编辑:这在Chrome 44/45 +左右不受支持/可能会中断。在3月3日左右进行了一次代码审查,它确实打破了window.open从后台页面,但暂时还原了。那么期望这不能在Chrome 50开始工作吗?

实际上(在Chrome 43中)可以在浏览器标签中运行Chrome平台打包应用。在后台页面中,只需使用应用中某些内容的网址调用window.open即可。例如,如果index.html位于您应用的目录中,则会在包含网址chrome-extension://{{ extension id }}/index.html的浏览器标签中打开您的应用

这不需要任何额外的清单权限。

请注意,只需在浏览器中输入网址chrome-extension://{{ extension id }}/index.html即可。您需要从应用程序的后台脚本中打开它。