跳到主要内容

Chrome 扩展程序支持

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

注意: Electron 不支持来自商店的任意 Chrome 扩展程序,并且与 Chrome 的扩展程序实现完全兼容并非 Electron 项目的目标

加载扩展程序

Electron 仅支持加载未打包的扩展程序(即,.crx 文件不起作用)。 扩展程序是按 session 安装的。 要加载扩展程序,请调用 ses.loadExtension

const { session } = require('electron')

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

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

请注意,仅持久会话支持加载扩展程序。 尝试将扩展程序加载到内存会话中将抛出错误。

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

支持的扩展程序 API

我们支持以下扩展程序 API,但有一些注意事项。 可能还支持其他 API,但对此处未列出的任何 API 的支持都是暂定的,可能会被删除。

支持的 Manifest 键

  • name
  • version
  • author
  • permissions
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (Manifest V3)
  • manifest_version
  • background (Manifest V2)
  • minimum_chrome_version

有关每个可能的键的用途的更多信息,请参阅 Manifest 文件格式

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

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