概念和用法

扩展程序的清单中声明为 "commands" 对象的属性。

属性键将用作命令的名称。命令对象可以具有两个属性。

 manifest.json中配置方式

{
  "name": "My extension",
  ...
  "commands": {
    "run-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y"
      },
      "description": "Run \"foo\" on the current page."
    },
    "_execute_action": {
      "suggested_key": {
        "windows": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y",
        "chromeos": "Ctrl+Shift+U",
        "linux": "Ctrl+Shift+J"
      }
    }
  },
  ...
}

suggested_key

 可选属性,用于声明命令的默认键盘快捷键。如果省略,该命令将解除绑定。此属性可以接受字符串或对象值。

description

用于为用户提供命令用途的简短说明的字符串。此字符串会显示在扩展程序键盘快捷键管理界面中。标准命令必须包含说明,而操作命令会忽略说明。

键组合要求

扩展程序命令快捷方式必须包含 Ctrl 或 Alt。

修饰符不能与媒体键结合使用。
在 macOS 上,Ctrl 会自动转换为 Command。

如需在 macOS 上使用 Ctrl 键,请在定义 "mac" 快捷方式时将 Ctrl 替换为 MacCtrl。

将 MacCtrl 用于其他平台会导致出现验证错误,并会阻止该扩展程序安装。

Shift 是所有平台上的可选修饰符。

Search 是 ChromeOS 独有的可选修饰符。

某些操作系统和 Chrome 快捷方式(例如窗口管理)始终优先于扩展程序命令快捷方式,因此无法被覆盖。

常用方法

快捷键执行监听

在 Service Worker 中,您可以使用 onCommand.addListener 将处理程序绑定到清单中定义的每个命令。例如:

chrome.commands.onCommand.addListener((command) => {
  console.log(`Command: ${command}`);
});

获取所有快捷键设置 

chrome.commands.getAll(
  callback?:
  function,
)