Chrome extension 的manifest.json 文件说明

本文详细介绍了manifest.json文件的各个字段及其用途,包括必填项name和version,推荐项description和icons等,并列举了权限permissions的具体示例及说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

字段摘要

以下字段为manifest.json的字段,其中name version 是必须的

{

  // Required

  "name": "My Extension",

  "version": "versionString",

  // Recommended

  "description": "A plain text description",

  "icons": { ... },

  "default_locale": "en",

  // Pick one (or none)

  "browser_action": {...},

  "page_action": {...},

  "theme": {...},

  // Add any of these that you need

  "background_page": "aFile.html",

  "chrome_url_overrides": {...},

  "content_scripts": [...],

  "key": "publicKey",

  "minimum_chrome_version": "versionString",

  "options_page": "aFile.html",

  "permissions": [...],

  "plugins": [...],

  "update_url": "http://path/to/updateInfo.xml"

  "incognito": "split or spanning",

}

字段说明

description

描述,普通文本字符串 (HTML和其他格式,不能超过132个字符),用以描述该extension程序. 描述应同时适用于浏览器的用户界面和管理延伸扩展.

icons

Extension程序的图标,可以有一个或多个. 至少提供两个大小的图标— 48x48 and 128x128. 48x48 的图标用在extensions的管理界面(chrome://extensions). 128x128 的图标用在安装extension程序的时候. 还可以指定一个16x16 的图标当作 extension 的页面图标. 也可以显示在实验信息栏上。

图标一般为PNG格式, 因为最好的透明度的支持,不过WebKit支持任何格式,包括BMPGIFICO等,和JPEG。下面是一个指定的图标的例子:

"icons": {  "16": "icon16.png",

          "48": "icon48.png",

          "128": "icon128.png" },

注意以上写的图标不是固定的。随浏览器的环境的改变而变。如:安装时弹出的对话框变小。 

default_locale

默认的语言环境

key

在开发程序加载完后,key值可用在控制唯一ID

minimum_chrome_version

version

name

一个简短的,纯文本字符串(不超过45个字符),程序的标识。该名称用在安装对话框中,Extension的管理界面

permissions

值为一个数组。每个权限可以是一个已知的字符串列表(如标签)或一个匹配模式,可以访问一个或多个主机。

以下是manifest 文件权限部分的例子:

"permissions": [

  "tabs",

  "bookmarks",

  "http://www.blogger.com/",

  "http://*.google.com/",

  "unlimitedStorage"

],

以下为可能用到的权限清单:

权限

描述

match pattern

指定一台主机的权限。如果需要交互运行网页上的代码。该属性是必须的,很多扩展功能,如跨域请求XMLHttpRequests,注入的内容脚本编程,以及CoookiesAPI需要主机的权限。

"bookmarks"

详见chrome.bookmarks 模块

"chrome://favicon/"

"chrome://favicon/url" 的形式用于显示页面的favicon . 如: 为了显示http://www.google.com/favicon,你要声明 "chrome://favicon/" 权限代码如下:

<img src="chrome://favicon/http://www.google.com/">

"contextMenus"

详见chrome.contextMenus 模块.

"cookies"

详见chrome.cookies 模块.

"experimental"

详见chrome.experimental.* APIs.

"geolocation"

允许extension 程序使用HTML5 geolocation API ,不需要用户的许可权限

"history"

详见chrome.history 模块.

"idle"

详见chrome.idle 模块.

"notifications"

允许extension 程序使用HTML5 notification API ,不需要访问权限方法 (比如checkPermission()). 详见Desktop Notifications.

"tabs"

详见 chrome.tabs or chrome.windows 模块.

"unlimitedStorage"

提供一个用于存储HTML5的客户端的数据,如数据库和本地存储的文件,不设限额。如果没有这个权限,扩展限制为5MB本地存储空间。

 

version

一至四个以点分隔的整数标识版本。一些应用于整数的规则:他们必须在065535之间,包括非零整数。例如,99999032都是无效的。
下面是有效版本的一些例子:
•“版本“1”
•“版本“1.0”
•“版本“2.10.2”
•“版本“3.1.2.4567”
自动更新系统版本比较,以确定是否已安装扩展需要更新。如果发布扩展已安装的扩展较新版本的字符串,然后扩展名自动更新。
比较开始从最左边的整数。如果这些整数是平等的,右边的整数进行比较,依此类推。例如,1.2.0是一个比1.1.9.9999更新的版本。
一个缺少整数等于零。例如,1.1.9.9999版本比是1.1更新的版本。详见 Autoupdating.

 

 

友情链接:http://www.androidroad.com

<think>我们正在处理一个关于manifest.json文件存放位置的问题。根据提供的引用,我们可以从不同框架和技术的角度来分析manifest.json的位置。首先,引用[1]提到在SAPUI5框架中,manifest.json文件用于存储应用的元数据,并且是在Component.js的metadata字段中指定的。这表明在SAPUI5项目中,manifest.json通常位于项目的根目录或与Component.js文件相关的目录中。引用[2]是关于微信小程序的,其中提到app.json是小程序的全局配置文件,它指定了小程序由哪些页面组成。虽然这里没有直接提到manifest.json,但我们可以类比:在微信小程序中,配置文件(如app.json)通常位于项目的根目录。引用[3]提到SpringBoot项目中静态资源的加载顺序,包括META/resources、resources、static、public等目录。虽然这里也没有直接提到manifest.json,但我们可以推断,如果manifest.json是一个静态资源文件,它可能位于这些目录之一。引用[4]是一段AndroidWebView的错误处理代码,与manifest.json关系不大。综合以上引用,我们可以总结:1.在SAPUI5项目中,manifest.json通常位于项目的根目录,或者是在metadata中指定的路径。2.在微信小程序项目中,类似的配置文件(如app.json)位于项目根目录。3.在SpringBoot项目中,静态资源文件可以放在resources、static、public等目录下。因此,要确定manifest.json的具体位置,需要根据项目使用的框架或技术来决定。针对用户的问题:“我想查找manifest.json文件的位置请问确定manifest.json文件在项目中的存放位置”,我们可以这样回答:**回答:**manifest.json文件的位置取决于您使用的框架或项目类型。以下是一些常见情况:1.**SAPUI5项目**:manifest.json通常位于项目的根目录。在Component.js文件中,通过metadata字段指定manifest.json的路径(如`sap.ui5`下的`manifest:"json"`)。因此,您可以在项目根目录下查找该文件[^1]。2.**微信小程序项目**:虽然微信小程序的全局配置文件是app.json,但如果您指的是类似manifest.json的配置文件(例如某些框架中的配置),它通常也位于项目根目录[^2]。3.**SpringBoot项目**:在SpringBoot中,manifest.json如果作为静态资源文件,可以放在以下目录之一:-`src/main/resources/META/resources/`-`src/main/resources/resources/`-`src/main/resources/static/`-`src/main/resources/public/`您可以根据项目的实际情况在这些目录中查找[^3]。4.**其他项目(如Web扩展、PWA等)**:对于浏览器扩展(ChromeExtension)或渐进式Web应用(PWA),manifest.json文件必须位于项目的根目录,以便浏览器或打包工具能够找到它。**建议**:-在您的项目中,尝试在根目录下查找manifest.json文件。-如果找不到,可以使用IDE的全局搜索功能(如VSCode的全局搜索)搜索文件名“manifest.json”。-另外,检查项目配置文件(如构建工具的配置文件)中是否指定了manifest.json的路径。如果您能提供更多关于项目类型的信息(如使用的是哪种框架),我们可以给出更精确的指导。§§相关问题§§1.如何在SAPUI5项目中正确配置manifest.json?2.微信小程序中app.jsonmanifest.json有什么区别?3.在SpringBoot中如何自定义静态资源的加载路径?4.如何为Chrome扩展创建manifest.json文件?</think>### manifest.json文件在项目中的存放位置 manifest.json文件的位置取决于具体的项目类型和技术栈。根据不同的框架和平台,其存放位置有所差异: 1. **SAP UI5 项目** 在SAP UI5框架中,manifest.json作为核心配置文件,通常存放在项目的**根目录**下。开发时需在Component.js的metadata字段中声明加载路径: ```javascript metadata: { manifest: "json" // 框架自动加载根目录的manifest.json } ``` 文件路径示例:`your_project/manifest.json` [^1] 2. **微信小程序项目** 微信小程序的全局配置文件是`app.json`(非manifest.json),但类似功能的配置文件(如页面配置)必须放在**对应页面的目录**中: ``` project_root ├── app.json # 全局配置 └── pages ├── index ├── index.json # 页面级配置 ``` 框架会自动加载匹配的JSON文件[^2]。 3. **Spring Boot 项目** 作为静态资源文件时,manifest.json应放置在以下目录之一: - `src/main/resources/META/resources/` - `src/main/resources/resources/` - `src/main/resources/static/` - `src/main/resources/public/` 加载优先级为:META/resources > resources > static > public[^3]。 4. **PWA/Web扩展项目** 对于渐进式Web应用(PWA)或浏览器扩展: - **必须直接放在项目根目录** - 路径示例:`project_root/manifest.json` - 这是浏览器引擎要求的固定位置 5. **Android WebView项目** 如果是混合应用中的Web资源: ```java webView.loadUrl("file:///android_asset/manifest.json"); ``` 文件需放在:`src/main/assets/`目录[^4] **通用查找方法**: 1. 使用IDE全局搜索`"manifest":`或`"name":` 2. 检查项目根目录和`src/`目录下的常见位置 3. 查看构建配置文件(如webpack.config.js)中的资源路径配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值