Chrome应用/扩展程序/旧版的定义

时间:2015-02-10 16:57:42

标签: google-chrome google-chrome-extension google-chrome-app

根据我的理解,每个Chrome应用/扩展程序/旧版本都由其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 Legacy:

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

这就像在Chrome中的新标签页中打开的网络应用程序。

请你确认这是正确的。

1 个答案:

答案 0 :(得分:2)

extension不必具有浏览器操作,也不必具有任何可见的UI。在清单中没有app部分的任何内容都是扩展名。

它用于与普通浏览交互的任何类型的功能。请参阅available APIs


legacy packaged app是一种现已弃用的应用类型,可在浏览器标签中打开,但使用本地组件并可访问Chrome API。

确实,通过在清单中使用app.launch.local_path密钥来识别它们。

引用文档:

  

旧版打包应用已停止使用,Chrome将于2015年6月停止加载

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


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

通过使用app.launch.web_url键来定义。正如您所推断的,它们与旧版打包应用程序同时出现。

如果您已经拥有一个网络应用但希望在Chrome网上应用店中存在一些内容,那么这是一种有用的应用类型。但是,用户经常对此类应用感到愤怒,因为他们“只是指向网站的链接”。


一个Chrome App(也是“打包应用”,以区别于托管应用,但不推荐使用此术语,因为它用于旧版应用)是一个独立的HTML5应用程序,可以打开与浏览器。这是“新的”应用范例。

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

谷歌长期以来认为Chrome应用程序尽可能独立于浏览器,因此their API在很大程度上不允许与浏览器进行交互。然而,这一立场正在慢慢侵蚀 [citation needed]


Google有nice (if slightly outdated) flowchart来决定您的功能需要哪种类型的应用/扩展程序:

Google, CC-By-3.0

此外,还有in-depth explanation of differences