在浏览器选项卡内运行Chrome打包应用程序

Run Chrome Packaged apps inside of browser tab

本文关键字:Chrome 应用程序 运行 浏览器 选项      更新时间:2023-09-26

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

也许它可能以某种方式使用chrome.socket和其他api像往常一样,甚至可能只在开发模式?

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

打开外部URL(不在打包的应用程序中)。

但是,你可以通过使用webview标签来模拟浏览器。请参阅浏览器示例的代码来了解如何做到这一点。

你也可以安装一个扩展,使用刚刚发布的消息传递API与你的打包应用程序对话。查看消息传递示例来了解如何-只要您知道应用程序和扩展id,它就非常简单。

编辑:这是不支持的/很可能在Chrome 44/45+左右打破。3月3日的代码审查确实打破了窗口。从后台页面打开,但被暂时还原。所以预计这不会在Chrome 50开始工作?

它实际上是可能的(在Chrome 43)在浏览器选项卡中运行您的Chrome平台打包应用程序。从你的后台页面,简单地调用window.open与一些内容的URL在你的应用程序中。例如,如果index.html是在你的应用程序的目录,它会打开你的应用程序在浏览器选项卡URL chrome-extension://{{ extension id }}/index.html

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

请注意,如果您只是在浏览器中键入url chrome-extension://{{ extension id }}/index.html,它将不起作用。你需要从应用程序的后台脚本打开它。