chrome或edge扩展的清单文件格式说明(manifest.json配置说明)

990 阅读2分钟

微软EDGE或CHROME的每一个扩展都有一个JSON格式的清单文件(manifest.json)。清单文件是扩展的蓝图。清单文件包括如下信息:

  • 扩展的版本编号。
  • 扩展的标题。
  • 扩展运行所需的权限。

扩展格式从清单 V2 移动到清单 V3。此处显示两种格式。要将清单 V2 扩展迁移到清单 V3,请导航以准备更新从清单 v2 到 v3 的扩展manifest.json

V2与V3版本的差异

说明分类V2V3说明
Requiredmanifest_versionmanifest 版本,目前只有V2 V3两个版本
Requiredname
Requiredversion
Recommendedaction
Recommendeddefault_locale
Recommendeddescription
Recommendedicons
Optionalaction
Optionalauthor
Optionalautomation
Optionalbackground
Optionalservice_worker
Optionalchrome_settings_overrides
Optionalchrome_url_overrides
Optionalcontent_capabilities
Optionalcontent_scripts
Optionalcontent_security_policy
Optionalconverted_from_user_script
Optionalcurrent_locale
Optionaldeclarative_net_request
Optionaldevtools_page
Optionaldifferential_fingerprint
Optionalexternally_connectable
Optionalfile_browser_handlers
Optionalfile_system_provider_capabilities
Optionalhomepage_url
Optionalhost_permissions
Optionalimport
Optionalincognito
Optionalinput_components
Optionalkey
Optionalminimum_chrome_version
Optionalnacl_modules
Optionalnatively_connectable
Optionaloauth2
Optionaloffline_enabled
Optionalomnibox地址栏关键词
Optionaloptional_permissions
Optionaloptions_page
Optionaloptions_ui
Optionalpermissions申请权限集合
Optionalplatforms
Optionalreplacement_web_app
Optionalrequirements
Optionalsandbox
Optionalstorage
Optionalsystem_indicator
Optionaltts_engine
Optionalupdate_url
Optionalversion_name产品的版本
Optionalweb_accessible_resources

使用清单 V3 进行扩展的清单格式.json

下列代码显示用于扩展的扩展支持字段,用于清单 V3 包。manifest.json

有关每个字段的参考信息,请导航到"清单"文件格式 (V3),然后选择字段上的链接。

  // Required
  "manifest_version": 3,
  "name": "My V3 Extension",
  "version": "versionString",

  // Recommended
  "action": {...},
  "default_locale": "en",
  "description": "A plain-text description",
  "icons": {...},

  // Optional
  "action": ...,
  "author": ...,
  "automation": ...,
  "background": {
    // If `background` is included, `service_ worker` is required
    "service_worker": ...
  },
  "chrome_settings_overrides": {...},
  "chrome_url_overrides": {...},
  "commands": {...},
  "content_capabilities": ...,
  "content_scripts": [{...}],
  "content_security_policy": "policyString",
  "converted_from_user_script": ...,
  "current_locale": ...,
  "declarative_net_request": ...,
  "devtools_page": "devtools.html",
  "differential_fingerprint": ...,
  "event_rules": [{...}],
  "externally_connectable": {
    "matches": ["*://*.contoso.com/*"]
  },
  "file_browser_handlers": [...],
  "file_system_provider_capabilities": {
    "configurable": true,
    "multiple_mounts": true,
    "source": "network"
  },
  "homepage_url": "http://path/to/homepage",
  "host_permissions": [...],
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  "incognito": "spanning, split, or not_allowed",
  "input_components": ...,
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "natively_connectable": ...,
  "oauth2": ...,
  "offline_enabled": true,
  "omnibox": {
    "keyword": "aString"
  },
  "optional_permissions": ["tabs"],
  "options_page": "options.html",
  "options_ui": {
    "chrome_style": true,
    "page": "options.html"
  },
  "permissions": ["tabs"],
  "platforms": ...,
  "replacement_web_app": ...,
  "requirements": {...},
  "sandbox": [...],
  "short_name": "Short Name",
  "storage": {
    "managed_schema": "schema.json"
  },
  "system_indicator": ...,
  "tts_engine": {...},
  "update_url": "http://path/to/updateInfo.xml",
  "version_name": "aString",
  "web_accessible_resources": [...]
}

使用清单 V2 进行扩展的清单格式.json

下列代码显示用于扩展的扩展支持字段,用于清单 V2 包。manifest.json

有关每个字段的参考信息,请导航到"清单"文件格式 (V2),然后选择字段上的链接。

  // Required
  "manifest_version": 2,
  "name": "My V2 Extension",
  "version": "versionString",

  // Recommended
  "default_locale": "en",
  "description": "A plain-text description",
  "icons": {...},

  // Pick one or none
  "browser_action": {...},
  "page_action": {...},

  // Optional
  "action": ...,
  "author": ...,
  "automation": ...,
  "background": {
    // If `background` is included, `persistent` is recommended
    "persistent": false,
    // If `background` is included, `service_worker` is optional
    "service_worker": ...
  },
  "chrome_settings_overrides": {...},
  "chrome_url_overrides": {...},
  "commands": {...},
  "content_capabilities": ...,
  "content_scripts": [{...}],
  "content_security_policy": "policyString",
  "converted_from_user_script": ...,
  "current_locale": ...,
  "declarative_net_request": ...,
  "devtools_page": "devtools.html",
  "differential_fingerprint": ...,
  "event_rules": [{...}],
  "externally_connectable": {
    "matches": ["*://*.contoso.com/*"]
  },
  "file_browser_handlers": [...],
  "file_system_provider_capabilities": {
    "configurable": true,
    "multiple_mounts": true,
    "source": "network"
  },
  "homepage_url": "http://path/to/homepage",
  "host_permissions": ...,
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  "incognito": "spanning, split, or not_allowed",
  "input_components": ...,
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "natively_connectable": ...,
  "oauth2": ...,
  "offline_enabled": true,
  "omnibox": {
    "keyword": "aString"
  },
  "optional_permissions": ["tabs"],
  "options_page": "options.html",
  "options_ui": {
    "chrome_style": true,
    "page": "options.html"
  },
  "permissions": ["tabs"],
  "platforms": ...,
  "replacement_web_app": ...,
  "requirements": {...},
  "sandbox": [...],
  "short_name": "Short Name",
  "storage": {
    "managed_schema": "schema.json"
  },
  "system_indicator": ...,
  "tts_engine": {...},
  "update_url": "http://path/to/updateInfo.xml",
  "version_name": ...,
  "web_accessible_resources": [...]
}