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 支援載入擴充功能。嘗試將擴充功能載入到記憶體內 session 將會拋出錯誤。
請參閱 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
作為 tab ID 表示「目前活動的 tab」。由於 Electron 沒有此概念,因此不支援將-1
作為 tab ID 傳遞,並且會引發錯誤。
請參閱 官方文件 以取得更多資訊。
chrome.webRequest
支援此 API 的所有功能。
注意: 如果存在衝突的處理程序,Electron 的
webRequest
模組優先於chrome.webRequest
。
請參閱 官方文件 以取得更多資訊。