跳至主要内容

Chrome 扩展支持

Electron 支持 Chrome 扩展 API 的一个子集,主要用于支持 DevTools 扩展和 Chromium 内部扩展,但也恰好支持一些其他扩展功能。

注意:Electron 不支持商店中的任意 Chrome 扩展,并且 Electron 项目的目标并不是与 Chrome 的扩展实现完全兼容。

加载扩展

Electron 仅支持加载解压后的扩展(即,.crx 文件无效)。扩展程序是按每个session安装的。要加载扩展程序,请调用 ses.loadExtension

const { session } = require('electron')

session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})

加载的扩展程序不会在退出后自动记住;如果您在应用程序运行时没有调用loadExtension,则不会加载扩展程序。

请注意,加载扩展程序仅在持久性会话中受支持。尝试将扩展程序加载到内存中会话将引发错误。

有关加载、卸载和查询活动扩展程序的更多信息,请参阅 session 文档。

支持的扩展 API

我们支持以下扩展 API,并带有一些注意事项。其他 API 也可能得到支持,但对此处未列出的任何 API 的支持是临时的,可能会被删除。

支持的清单键

  • 名称
  • 版本
  • 作者
  • 权限
  • 内容脚本
  • 默认语言环境
  • 开发者工具页面
  • 简称
  • host_permissions(清单 V3)
  • 清单版本
  • background(清单 V2)
  • 最低 Chrome 版本

有关每个可能键的目的的更多信息,请参阅 清单文件格式

chrome.devtools.inspectedWindow

支持此 API 的所有功能。

有关更多信息,请参阅 官方文档

chrome.devtools.network

支持此 API 的所有功能。

有关更多信息,请参阅 官方文档

chrome.devtools.panels

支持此 API 的所有功能。

有关更多信息,请参阅 官方文档

chrome.extension

支持以下chrome.extension属性

  • chrome.extension.lastError

支持以下chrome.extension方法

  • chrome.extension.getURL
  • chrome.extension.getBackgroundPage

有关更多信息,请参阅 官方文档

chrome.management

支持以下chrome.management方法

  • chrome.management.getAll
  • chrome.management.get
  • chrome.management.getSelf
  • chrome.management.getPermissionWarningsById
  • chrome.management.getPermissionWarningsByManifest

支持以下chrome.management事件

  • chrome.management.onEnabled
  • chrome.management.onDisabled

有关更多信息,请参阅 官方文档

chrome.runtime

支持以下chrome.runtime属性

  • chrome.runtime.lastError
  • chrome.runtime.id

支持以下chrome.runtime方法

  • chrome.runtime.getBackgroundPage
  • chrome.runtime.getManifest
  • chrome.runtime.getPlatformInfo
  • chrome.runtime.getURL
  • chrome.runtime.connect
  • chrome.runtime.sendMessage
  • chrome.runtime.reload

支持以下chrome.runtime事件

  • chrome.runtime.onStartup
  • chrome.runtime.onInstalled
  • chrome.runtime.onSuspend
  • chrome.runtime.onSuspendCanceled
  • chrome.runtime.onConnect
  • chrome.runtime.onMessage

有关更多信息,请参阅 官方文档

chrome.scripting

支持此 API 的所有功能。

有关更多信息,请参阅 官方文档

chrome.storage

支持以下chrome.storage方法

  • chrome.storage.local

不支持chrome.storage.syncchrome.storage.managed

有关更多信息,请参阅 官方文档

chrome.tabs

支持以下chrome.tabs方法

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • chrome.tabs.query(部分支持)
    • 支持的属性:urltitleaudibleactivemuted
  • chrome.tabs.update(部分支持)
    • 支持的属性:urlmuted

注意:在 Chrome 中,将-1作为选项卡 ID 表示“当前活动选项卡”。由于 Electron 没有此概念,因此不支持将-1作为选项卡 ID 传递,并将引发错误。

有关更多信息,请参阅 官方文档

chrome.webRequest

支持此 API 的所有功能。

注意:如果存在冲突的处理程序,则 Electron 的 webRequest 模块优先于chrome.webRequest

有关更多信息,请参阅 官方文档