Chrome 扩展支持¶
Electron 支持 Chrome Extensions API 的一部分,主要用于支持 DevTools 扩展和 Chromium 内部扩展,但同时也恰好支持一些其他扩展功能。
[!NOTE] 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 的支持都是临时的,可能会被移除。
支持的清单键¶
nameversionauthorpermissionscontent_scriptsdefault_localedevtools_pageshort_namehost_permissions(Manifest V3)manifest_versionbackground(Manifest V2)minimum_chrome_version
有关每个可能键的用途的更多信息,请参阅清单文件格式。
chrome.devtools.inspectedWindow¶
此 API 的所有功能均受支持。
有关更多信息,请参阅官方文档。
chrome.devtools.network¶
此 API 的所有功能均受支持。
有关更多信息,请参阅官方文档。
chrome.devtools.panels¶
此 API 的所有功能均受支持。
有关更多信息,请参阅官方文档。
chrome.extension¶
chrome.extension 的以下属性受支持:
chrome.extension.lastError
chrome.extension 的以下方法受支持:
chrome.extension.getURLchrome.extension.getBackgroundPage
有关更多信息,请参阅官方文档。
chrome.management¶
chrome.management 的以下方法受支持:
chrome.management.getAllchrome.management.getchrome.management.getSelfchrome.management.getPermissionWarningsByIdchrome.management.getPermissionWarningsByManifest
chrome.management 的以下事件受支持:
chrome.management.onEnabledchrome.management.onDisabled
有关更多信息,请参阅官方文档。
chrome.runtime¶
chrome.runtime 的以下属性受支持:
chrome.runtime.lastErrorchrome.runtime.id
chrome.runtime 的以下方法受支持:
chrome.runtime.getBackgroundPagechrome.runtime.getManifestchrome.runtime.getPlatformInfochrome.runtime.getURLchrome.runtime.connectchrome.runtime.sendMessagechrome.runtime.reload
chrome.runtime 的以下事件受支持:
chrome.runtime.onStartupchrome.runtime.onInstalledchrome.runtime.onSuspendchrome.runtime.onSuspendCanceledchrome.runtime.onConnectchrome.runtime.onMessage
有关更多信息,请参阅官方文档。
chrome.scripting¶
此 API 的所有功能均受支持。
有关更多信息,请参阅官方文档。
chrome.storage¶
chrome.storage 的以下方法受支持:
chrome.storage.local
chrome.storage.sync 和 chrome.storage.managed 不受支持。
有关更多信息,请参阅官方文档。
chrome.tabs¶
chrome.tabs 的以下方法受支持:
chrome.tabs.sendMessagechrome.tabs.reloadchrome.tabs.executeScriptchrome.tabs.query(部分支持)- 支持的属性:
url、title、audible、active、muted。 chrome.tabs.update(部分支持)- 支持的属性:
url、muted。
[!NOTE] 在 Chrome 中,将
-1作为标签页 ID 传递表示“当前活动标签页”。由于 Electron 没有这样的概念,因此将-1作为标签页 ID 传递不受支持,并会引发错误。
有关更多信息,请参阅官方文档。
chrome.webRequest¶
此 API 的所有功能均受支持。
[!NOTE] 如果存在冲突的处理程序,Electron 的
webRequest模块优先于chrome.webRequest。
有关更多信息,请参阅官方文档。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron