Chrome扩展程序键盘命令似乎没有注册

mik*_*ana 2 google-chrome keyboard-shortcuts google-chrome-extension

我正在使用Chrome 34(即开发频道)和新的chrome.commands API开发Chrome扩展程序,主要是为了获得媒体密钥支持.

在我的manifest.json中,我目前只使用官方文档中给出的示例代码:

"commands": {
  "toggle-feature-foo": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y",
      "mac": "Command+Shift+Y"
    },
    "description": "Toggle feature foo"
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的背景页面中:

chrome.commands.getAll(function(commands){
  console.log(commands)
})

chrome.commands.onCommand.addListener(function(command) {
  console.log('Command:', command);
)}
Run Code Online (Sandbox Code Playgroud)

首先,键盘快捷键未注册:

Array[1]
 0: Object
   description: "Toggle feature foo"
   name: "toggle-feature-foo"
   shortcut: ""
Run Code Online (Sandbox Code Playgroud)

请注意"快捷方式"如何为空.https://developer.chrome.com/extensions/commands#method-get所有提及的快捷方式仅在"活动"时显示.但我不确定为什么快捷方式不会"活跃"(我正在使用OS X 10.9,如果这很重要).

其次,实际按下Cmd Shift Y或Ctrl Shift Y不会在后台页面中触发事件.

如何通过我的后台页面接收键盘命令

ber*_*err 5

您是否检查了扩展页面底部的键盘快捷方式框,以验证您的建议密钥是否实际设置在那里?

我遇到了类似的问题...当我加载解压缩的扩展以进行开发时,建议的密钥没有设置,即使密钥可用并在清单中定义.我必须在扩展页面中自己手动设置密钥.我不确定这是否是最佳解决方案,但我无法从搜索中找到任何答案.此外,当我在chrome商店发布我的扩展时,建议的密钥工作并自动设置...所以这似乎只在开发模式下发生.