API 参考
Chrome 提供了具有许多专用 API 的扩展程序,例如 chrome.runtime
和 chrome.alarms
。
# API conventions
除非文档另有说明,chrome.*
API 中的方法是异步的:它们立即返回,无需等待操作完成。如果您需要知道操作的结果,则将回调函数传递给该方法。有关更多信息,请观看此视频(视频未翻译,所以不贴地址了)。
稳定的 API
发布信息不适用于 2015 年初发布的 Chrome 42 之前的 API。
名称 | 描述 |
---|---|
accessibilityFeatures | 使用 chrome.accessibilityFeatures API 来管理 Chrome 的辅助功能。此 API 依赖于类型 API 的 ChromeSetting 原型来获取和设置各个辅助功能。为了获得功能状态,扩展必须请求 accessibilityFeatures.read 权限。为了修改功能状态,扩展需要accessibilityFeatures.modify 权限。请注意,accessibilityFeatures.modify 并不意味着accessibilityFeatures.read 权限。 |
action | Chrome 88+ MV3+ 使用 chrome.action API 控制 Google Chrome 工具栏中的扩展程序图标。 |
alarms | 使用 chrome.alarms API 安排代码定期运行或在未来的指定时间运行。 |
bookmarks | 使用 chrome.bookmarks API 创建、组织和以其他方式操作书签。另请参阅覆盖页面,您可以使用它来创建自定义书签管理器页面。 |
browserAction | ≤MV2 使用浏览器操作将图标放置在 Google Chrome 主工具栏中,位于地址栏的右侧。除了图标之外,浏览器操作还可以有工具提示、徽章和弹出窗口。 tooltip, badge, popup. |
browsingData | 使用 chrome.browsingData API 从用户的本地配置文件中删除浏览数据。 |
certificateProvider | Chrome 46+ 使用此 API 向平台公开证书,平台可以使用这些证书进行 TLS 身份验证。 |
commands | 使用命令 API 添加在扩展程序中触发操作的键盘快捷键,例如打开浏览器操作或向扩展程序发送命令的操作。 |
contentSettings | 使用 chrome.contentSettings API 更改控制网站是否可以使用 cookie、JavaScript 和插件等功能的设置。更一般地说,内容设置允许您基于每个站点而不是全局自定义 Chrome 的行为。 |
contextMenus | 使用 chrome.contextMenus API 将项目添加到 Google Chrome 的上下文菜单。您可以选择添加上下文菜单的对象类型,例如图像、超链接和页面。 |
cookies | 使用 chrome.cookies API 查询和修改 cookie,并在更改时收到通知。 |
debugger | chrome.debugger API 作为 Chrome 远程调试协议remote debugging protocol的替代传输。使用 chrome.debugger 附加到一个或多个选项卡以检测网络交互,调试 JavaScript,改变 DOM 和 CSS 等。使用 Debuggee tabId 使用 sendCommand 定位选项卡,并通过 tabId 从 onEvent 回调路由事件。 |
declarativeContent | 使用 chrome.declarativeContent API 根据页面内容执行操作,无需获得读取页面内容的权限。 |
declarativeNetRequest | Chrome 84+ chrome.declarativeNetRequest API 用于通过指定声明性规则来阻止或修改网络请求。这让扩展程序可以修改网络请求,而无需拦截它们并查看其内容,从而提供更多隐私。 |
desktopCapture | Desktop Capture API,可用于捕获屏幕、单个窗口或选项卡的内容。 |
devtools.inspectedWindow | 使用 chrome.devtools.inspectedWindow API 与被检查窗口交互:获取被检查页面的标签 ID、在被检查窗口的上下文中评估代码、重新加载页面或获取页面内的资源列表。 |
devtools.network | 使用 chrome.devtools.network API 检索有关网络面板中开发者工具显示的网络请求的信息。 |
devtools.panels | 使用 chrome.devtools.panels API 将您的扩展程序集成到开发人员工具窗口 UI:创建您自己的面板、访问现有面板并添加侧边栏。 |
documentScan | Chrome 44+ 使用 chrome.documentScan API 从附加的纸质文档扫描仪中发现和检索图像。 |
downloads | 使用 chrome.downloads API 以编程方式启动、监视、操作和搜索下载。 |
enterprise.deviceAttributes | Chrome 46+ 使用 chrome.enterprise.deviceAttributes API 读取设备属性。注意:此 API 仅适用于由企业策略强制安装的扩展程序。 |
enterprise.hardwarePlatform | Chrome 71+ 使用 chrome.enterprise.hardwarePlatform API 获取浏览器运行的硬件平台的制造商和型号。注意:此 API 仅适用于企业策略安装的扩展。 |
enterprise.networkingAttributes | Chrome 85+ 使用 chrome.enterprise.networkingAttributes API 读取有关您当前网络的信息。注意:此 API 仅适用于由企业策略强制安装的扩展程序。 |
enterprise.platformKeys | Foreground only 使用 chrome.enterprise.platformKeys API 生成密钥并为这些密钥安装证书。证书将由平台管理,可用于 TLS 身份验证、网络访问或通过 {@link platformKeys chrome.platformKeys} 进行其他扩展。 |
events | chrome.events 命名空间包含 API 调度事件使用的常用类型,以便在发生有趣的事情时通知您。 |
extension | chrome.extension API 具有可供任何扩展页面使用的实用程序。它支持在扩展与其内容脚本之间或扩展之间交换消息,如在 Message Passing. |
extensionTypes | chrome.extensionTypes API 包含 Chrome 扩展的类型声明。 |
fileBrowserHandler | Foreground only 使用 chrome.fileBrowserHandler API 扩展 Chrome 操作系统文件浏览器。例如,您可以使用此 API 使用户能够将文件上传到您的网站。 |
fileSystemProvider | Foreground only 使用 chrome.fileSystemProvider API 创建文件系统,可从 Chrome 操作系统上的文件管理器访问该文件系统。 |
fontSettings | 使用 chrome.fontSettings API 来管理 Chrome 的字体设置。 |
gcm | 使用 chrome.gcm 使应用程序和扩展程序能够通过Google Cloud Messaging Service. |
history | 使用 chrome.history API 与浏览器的访问页面记录交互。您可以添加、删除和查询浏览器历史记录中的 URL。要使用您自己的版本覆盖历史记录页面,请参阅 Override Pages. |
i18n | 使用 chrome.i18n 基础架构在整个应用程序或扩展程序中实现国际化。 |
identity | 使用 chrome.identity API 获取 OAuth2 访问令牌。 |
idle | 使用 chrome.idle API 来检测机器的空闲状态何时发生变化。 |
input.ime | 使用 chrome.input.ime API 为 Chrome 操作系统实现自定义 IME。这允许您的扩展程序处理击键、设置组合和管理候选窗口。 |
instanceID | Chrome 44+ 使用 chrome.instanceID 访问 Instance ID 服务。 |
loginState | Chrome 78+ 使用 chrome.loginState API 读取和监控登录状态。 |
management | chrome.management API 提供了管理已安装和运行的扩展程序/应用程序列表的方法。它对于覆盖override内置新标签页的扩展特别有用。 |
notifications | 使用 chrome.notifications API 使用模板创建丰富的通知,并在系统托盘中向用户显示这些通知。 |
omnibox | 多功能框 API 允许您使用 Google Chrome 的地址栏(也称为多功能框)注册关键字。 |
pageAction | ≤MV2 使用 chrome.pageAction API 将图标放置在 Google Chrome 主工具栏中,位于地址栏的右侧。页面操作表示可以在当前页面上执行的操作,但不适用于所有页面。页面操作在不活动时显示为灰色。 |
pageCapture | 使用 chrome.pageCapture API 将选项卡保存为 MHTML。 |
permissions | 使用 chrome.permissions API 在运行时而不是安装时请求声明的可选权限,以便用户了解为什么需要这些权限并只授予那些必要的权限。 |
platformKeys | Chrome 45+ Foreground only 使用 chrome.platformKeys API 访问由平台管理的客户端证书。如果用户或策略授予权限,扩展可以在其自定义身份验证协议中使用此类证书。例如。这允许在第三方 VPN 中使用平台管理的证书(请参阅 {@link vpnProvider chrome.vpnProvider})。 |
power | 使用 chrome.power API 覆盖系统的电源管理功能。 |
printerProvider | Chrome 44+ chrome.printerProvider API 公开打印管理器使用的事件,以查询由扩展控制的打印机、查询它们的功能并将打印作业提交给这些打印机。 |
printing | Chrome 81+ 使用 chrome.printing API 将打印作业发送到 Chromebook 上安装的打印机。 |
printingMetrics | Chrome 79+ 使用 chrome.printingMetrics API 获取有关打印使用情况的数据。 |
privacy | 使用 chrome.privacy API 来控制 Chrome 中可能影响用户隐私的功能的使用。该 API 依赖于类型 API 的 ChromeSetting 原型来获取和设置 Chrome 的配置。ChromeSetting prototype of the type API |
proxy | 使用 chrome.proxy API 来管理 Chrome 的代理设置。该 API 依赖于类型 API 的 ChromeSetting 原型来获取和设置代理配置。ChromeSetting prototype of the type API |
runtime | 使用 chrome.runtime API 检索后台页面、返回有关清单的详细信息,以及侦听和响应应用程序或扩展程序生命周期中的事件。您还可以使用此 API 将 URL 的相对路径转换为完全限定的 URL。 |
scripting | Chrome 88+ MV3+ 使用 chrome.scripting API 在不同的上下文中执行脚本。 |
search | Chrome 87+ 使用 chrome.search API 通过默认提供程序进行搜索。 |
sessions | 使用 chrome.sessions API 从浏览会话中查询和恢复选项卡和窗口。 |
storage | 使用 chrome.storage API 来存储、检索和跟踪用户数据的更改。 |
system.cpu | 使用 system.cpu API 查询 CPU 元数据。 |
system.display | 使用 system.display API 查询显示元数据。 |
system.memory | chrome.system.memory API。 |
system.storage | 使用 chrome.system.storage API 查询存储设备信息,并在连接和分离可移动存储设备时收到通知。 |
tabCapture | Foreground only 仅前景 使用 chrome.tabCapture API 与选项卡媒体流交互。 |
tabGroups | Chrome 89+ MV3+ 使用 chrome.tabGroups API 与浏览器的标签分组系统交互。您可以使用此 API 在浏览器中修改和重新排列选项卡组。要分组和取消分组选项卡,或查询分组中的选项卡,请使用 chrome.tabs API。 |
tabs | 使用 chrome.tabs API 与浏览器的标签系统交互。您可以使用此 API 在浏览器中创建、修改和重新排列选项卡。 |
topSites | 使用 chrome.topSites API 访问显示在新标签页上的热门站点(即访问量最大的站点)。这些不包括用户自定义的快捷方式。 |
tts | 使用 chrome.tts API 播放合成的文字转语音 (TTS)。另请参阅相关的 {@link ttsEngine} API,它允许扩展来实现语音引擎。 |
ttsEngine | 使用 chrome.ttsEngine API 通过扩展实现文本到语音 (TTS) 引擎。如果您的扩展使用此 API 注册,当任何扩展程序或 Chrome 应用程序使用 {@link tts} API 生成语音时,它将接收包含要说出的话语和其他参数的事件。然后,您的扩展程序可以使用任何可用的 Web 技术来合成和输出语音,并将事件发送回调用函数以报告状态。 |
types | chrome.types API 包含 Chrome 的类型声明。 |
vpnProvider | Chrome 43+ 使用 chrome.vpnProvider API 实现 VPN 客户端。 |
wallpaper | Chrome 43+ 使用 chrome.wallpaper API 更改 ChromeOS 壁纸。 |
webNavigation | 使用 chrome.webNavigation API 接收有关正在进行的导航请求状态的通知。 |
webRequest | 使用 chrome.webRequest API 来观察和分析流量并拦截、阻止或修改进行中的请求。 |
windows | 使用 chrome.windows API 与浏览器窗口交互。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。 |
Beta APIs
这些 API 仅在 Chrome Beta 和 Dev 频道中可用:
Name | Description |
---|---|
declarativeWebRequest | Beta channel ≤MV2 注意:此 API 已弃用。请查看 {@link declarativeNetRequest} API。使用 chrome.declarativeWebRequest API 拦截、阻止或修改进行中的请求。它比 {@link webRequest chrome.webRequest API} 快得多,因为您可以注册在浏览器而不是 JavaScript 引擎中评估的规则,从而减少往返延迟并提高效率。 |
Dev APIs
这些 API 仅在 Chrome Dev 频道中可用:
Name | Description |
---|---|
automation | Dev channel chrome.automation API 允许开发人员访问浏览器的自动化(可访问性)树。该树类似于 DOM 树,但仅暴露页面的语义结构。它可用于通过检查名称、角色和状态、侦听事件以及在节点上执行操作,以编程方式与页面交互。 |
processes | Dev channel 使用 chrome.processes API 与浏览器的进程交互。 |
signedInDevices | Dev channel 使用 chrome.signedInDevices API 获取使用与当前配置文件相同的帐户登录 Chrome 的设备列表。 |
Platform Apps APIs(平台应用程序 API)
这些 API 支持所有平台上的 Chrome 应用程序。
这些 API 已弃用。 Chrome 将在所有平台上取消对 Chrome 应用程序的支持。详细了解如何迁移您的应用。
Name | Description |
---|---|
app.runtime | 使用 chrome.app.runtime API 来管理应用程序生命周期。应用运行时管理应用安装,控制事件页面,可以随时关闭应用。 |
app.window | 使用 chrome.app.window API 创建窗口。 Windows 有一个带有标题栏和大小控件的可选框架。它们与任何 Chrome 浏览器窗口无关。有关这些选项的演示,请参阅窗口状态示例。Window State Sample |
appviewTag | Chrome 43+ 使用 appview 标签在您的 Chrome 应用程序中嵌入其他 Chrome 应用程序。 (见用法)。 Usage |
audio | Chrome 59+ 提供 chrome.audio API 以允许用户获取有关连接到系统的音频设备的信息并对其进行控制。此 API 目前仅在 ChromeOS 的自助服务终端模式下可用。 |
bluetooth | 使用 chrome.bluetooth API 连接到蓝牙设备。所有函数都通过 chrome.runtime.lastError 报告失败。 |
bluetoothLowEnergy | chrome.bluetoothLowEnergy API 用于使用通用属性配置文件 (GATT) 与蓝牙智能(低功耗)设备进行通信。 Generic Attribute Profile (GATT). |
bluetoothSocket | 使用 chrome.bluetoothSocket API 通过 RFCOMM 和 L2CAP 连接向蓝牙设备发送和接收数据。 |
browser | 使用 chrome.browser API 与与当前应用程序和 Chrome 配置文件关联的 Chrome 浏览器交互。 |
clipboard | Dev channel 提供 chrome.clipboard API 以允许用户访问剪贴板的数据。这是 chromeos 平台应用程序的临时解决方案,直到开放网络替代方案可用。一旦开放网络解决方案可用(可能在 2017 年第四季度),它将被弃用。 |
fileSystem | Foreground only 使用 chrome.fileSystem API 创建、读取、导航和写入用户的本地文件系统。使用此 API,Chrome 应用程序可以读取和写入用户选择的位置。例如,文本编辑器应用程序可以使用 API 来读取和写入本地文档。所有失败都通过 chrome.runtime.lastError 通知。 |
hid | 使用 chrome.hid API 与连接的 HID 设备交互。此 API 提供从应用程序上下文中访问 HID 操作的权限。使用此 API,应用程序可以充当硬件设备的驱动程序。通过设置 {@link runtime.lastError} 并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将是未定义的。 |
mdns | Chrome 43+ 使用 chrome.mdns API 通过 mDNS 发现服务。这包括 NSD 规范的一部分功能: http://www.w3.org/TR/discovery-api/ |
mediaGalleries | 使用 chrome.mediaGalleries API 从用户的本地磁盘(经用户同意)访问媒体文件(音频、图像、视频)。 |
networking.onc | Chrome 59+ chrome.networking.onc API 用于配置网络连接(蜂窝、以太网、VPN 或 WiFi)。此 API 在自动启动的 Chrome 操作系统自助服务终端会话中可用。 |
serial | 使用 chrome.serial API 读取和写入连接到串行端口的设备。 |
socket | 使用 chrome.socket API 通过 TCP 和 UDP 连接通过网络发送和接收数据。注意:从 Chrome 33 开始,此 API 已弃用,取而代之的是 {@link sockets.udp}、{@link sockets.tcp} 和 {@link sockets.tcpServer} API。 |
sockets.tcp | 使用 chrome.sockets.tcp API 通过 TCP 连接通过网络发送和接收数据。此 API 取代了先前在 chrome.socket API 中找到的 TCP 功能。 |
sockets.tcpServer | 使用 chrome.sockets.tcpServer API 来创建使用 TCP 连接的服务器应用程序。此 API 取代了先前在 chrome.socket API 中找到的 TCP 功能。 |
sockets.udp | 使用 chrome.sockets.udp API 通过 UDP 连接通过网络发送和接收数据。此 API 取代了先前在“套接字”API 中发现的 UDP 功能。 |
syncFileSystem | 使用 chrome.syncFileSystem API 在 Google Drive 上保存和同步数据。此 API 不适用于访问存储在 Google Drive 中的任意用户文档。它为离线和缓存使用提供特定于应用程序的可同步存储,以便可以在不同的客户端之间使用相同的数据。有关使用此 API 的更多信息,请阅读管理数据Manage Data。 |
system.network | 使用 chrome.system.network API。 |
usb | 使用 chrome.usb API 与连接的 USB 设备交互。此 API 提供从应用程序上下文中访问 USB 操作的权限。使用此 API,应用程序可以充当硬件设备的驱动程序。通过设置 {@link runtime.lastError} 并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将是未定义的。 |
virtualKeyboard | Chrome 58+ chrome.virtualKeyboard API 是一个仅限自助服务终端的 API,用于在自助服务终端会话中配置虚拟键盘布局和行为。 |
webviewTag | 使用 webview 标签通过网络主动加载来自网络的实时内容并将其嵌入到您的 Chrome 应用程序中。您的应用程序可以控制 webview 的外观并与 web 内容交互,在嵌入式网页中启动导航,对其中发生的错误事件做出反应等等 (see Usage). |
By.一粒技术服务