Chrome App/Extension/Legacy 的定义

Definition of Chrome App/Extension/Legacy

据我了解,每个 Chrome App/Extension/Legacy 都由其 manifest.json 中的属性定义,这些属性如下:

Chrome 应用:

一个 Chrome 应用程序将在其 mainfest.json 中包含以下内容:

"app": 
{
    "background": 
    {
      "scripts": ["background.js"]
    }
}

background.js 调用 chrome 代码 chrome.app.window.create 将打开一个新的独立应用程序.

Chrome 分机:

一个 Chrome 扩展将在其 mainfest.json 中包含以下内容:

"browser_action": 
{
    "default_popup": "index.html"
}

这将为 Chrome 添加扩展名。扩展程序是 Chrome 浏览器的插件。

Chrome 旧版:

"app":
{
    "launch":
    {
         "local_path": "index.html"
    }
}

这就像在 Chrome 中的新选项卡中打开的 Web 应用程序。

能否请您确认这是正确的。

extension 不一定要有浏览器操作,或者任何可见的 UI。清单中没有 app 部分的任何内容都是扩展。

它用于与正常浏览交互的任何类型的功能。参见 available APIs


legacy packaged app 是一种现已弃用的应用程序类型,它们在浏览器选项卡中打开但使用本地组件并可以访问 Chrome API.

确实,它们是通过清单中的 app.launch.local_path 键来识别的。

引用文档:

Legacy packaged apps are discontinued, and Chrome will stop loading them in June 2015

此外,Chrome 网上商店 no longer accepts legacy apps


hosted app 本质上是一小段元数据,主要用作网站的便捷快捷方式。

它是通过 app.launch.web_url 键定义的。您可以推断,它们与遗留打包应用程序同时出现。

如果您已有网络应用程序但希望在 Chrome 网上应用店中展示,这是一种有用的应用程序类型。但是,用户经常对此类应用感到愤怒 "just a link to a website"。


A Chrome App(也 "packaged app" 以区别于托管的,但不推荐使用此术语,因为它用于遗留应用程序)是一个独立的 HTML5与浏览器分开打开 UI 的应用程序。这是 "new" 应用范例。

它是通过 app.background 键定义的。这定义了应用程序 regulates the lifecycle 的事件页面。

Google 长期以来一直认为 Chrome 应用程序尽可能独立于浏览器,因此 their API does not, for the most part, allow interaction with the browser. This standpoint is slowly eroding[citation needed]


Google 有一个 nice (if slightly outdated) flowchart 来决定您的功能需要哪种类型的 app/extension:

还有一个in-depth explanation of differences