Chrome 扩展支持
Electron 支持 Chrome 扩展 API 的一个子集,主要用于支持 DevTools 扩展和 Chromium 内部扩展,但也恰好支持一些其他扩展功能。
注意:Electron 不支持来自商店的任意 Chrome 扩展,并且与 Chrome 的扩展实现完美兼容不是 Electron 项目的目标。
加载扩展
Electron 只支持加载已解压的扩展(即 .crx
文件无效)。 扩展是按 session
安装的。要加载扩展,请调用 ses.extensions.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.sync
和 chrome.storage.managed
不受支持。
有关更多信息,请参阅官方文档。
chrome.tabs
chrome.tabs
支持以下方法
chrome.tabs.sendMessage
chrome.tabs.reload
chrome.tabs.executeScript
chrome.tabs.query
(部分支持)- 支持的属性:
url
、title
、audible
、active
、muted
。
- 支持的属性:
chrome.tabs.update
(部分支持)- 支持的属性:
url
、muted
。
- 支持的属性:
注意:在 Chrome 中,将
-1
作为标签页 ID 传递表示“当前活动标签页”。 由于 Electron 没有此概念,因此不支持将-1
作为标签页 ID 传递,这会引发错误。
有关更多信息,请参阅官方文档。
chrome.webRequest
此 API 的所有功能均受支持。
注意:如果存在冲突的处理程序,Electron 的
webRequest
模块优先于chrome.webRequest
。
有关更多信息,请参阅官方文档。