Class: Extensions
Class: Extensions
加载和交互扩展。
进程:主进程
此类未从 'electron'
模块导出。它仅作为 Electron API 中其他方法的返回值可用。
Session
的 extensions
属性用于访问 Extensions
类的实例。
实例事件
Extensions
实例可用的事件如下:
Event: 'extension-loaded'
返回
event
Eventextension
Extension
扩展加载后触发。每当扩展被添加到“已启用”的扩展集中时,就会发生此情况。这包括:
- 通过
Extensions.loadExtension
加载的扩展。 - 重新加载的扩展
- 从崩溃中恢复。
- 如果扩展请求重新加载(
chrome.runtime.reload()
)。
Event: 'extension-unloaded'
返回
event
Eventextension
Extension
扩展卸载后触发。当调用 Session.removeExtension
时发生此情况。
Event: 'extension-ready'
返回
event
Eventextension
Extension
扩展加载后,所有必要的浏览器状态都已初始化以支持扩展后台页面的启动,然后触发此事件。
实例方法
Extensions
实例可用的方法如下:
extensions.loadExtension(path[, options])
path
string - 包含未打包 Chrome 扩展的目录路径。
Returns Promise<Extension>
- 扩展加载完成后解析。
如果扩展加载失败,此方法将抛出异常。如果安装扩展时出现警告(例如,扩展请求了 Electron 不支持的 API),则会将其记录到控制台。
请注意,Electron 不支持完整的 Chrome 扩展 API。有关支持的 API 的详细信息,请参阅 Supported Extensions APIs。
请注意,在 Electron 的早期版本中,加载的扩展会在应用程序下次运行时被记住。此行为已不再是这样:如果您希望扩展被加载,则必须在每次启动应用程序时调用 loadExtension
。
const { app, session } = require('electron')
const path = require('node:path')
app.whenReady().then(async () => {
await session.defaultSession.extensions.loadExtension(
path.join(__dirname, 'react-devtools'),
// allowFileAccess is required to load the devtools extension on file:// URLs.
{ allowFileAccess: true }
)
// Note that in order to use the React DevTools extension, you'll need to
// download and unzip a copy of the extension.
})
此 API 不支持加载打包的 (.crx) 扩展。
在 app
模块的 ready
事件触发之前,无法调用此 API。
不支持将扩展加载到内存中(非持久性)会话,否则会抛出错误。
extensions.removeExtension(extensionId)
extensionId
string - 要删除的扩展的 ID。
卸载扩展。
在 app
模块的 ready
事件触发之前,无法调用此 API。
extensions.getExtension(extensionId)
extensionId
string - 要查询的扩展的 ID。
Returns Extension | null
- 具有给定 ID 的已加载扩展。
在 app
模块的 ready
事件触发之前,无法调用此 API。
extensions.getAllExtensions()
Returns Extension[]
- 所有已加载扩展的列表。
在 app
模块的 ready
事件触发之前,无法调用此 API。