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.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
。
有关更多信息,请参阅 官方文档。