2

我正在開發一個Chrome擴展與鉻34(即開發通道),和新的chrome.commands API,主要是爲了獲得媒體密鑰的支持。鉻擴展鍵盤命令似乎並沒有註冊

在我的manifest.json,我目前只用在官方文檔中給出的示例代碼:

"commands": { 
    "toggle-feature-foo": { 
    "suggested_key": { 
     "default": "Ctrl+Shift+Y", 
     "mac": "Command+Shift+Y" 
    }, 
    "description": "Toggle feature foo" 
    } 
} 

在我的背景頁:

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

chrome.commands.onCommand.addListener(function(command) { 
    console.log('Command:', command); 
)} 

首先,鍵盤快捷鍵AREN沒有註冊:

Array[1] 
0: Object 
    description: "Toggle feature foo" 
    name: "toggle-feature-foo" 
    shortcut: "" 

注意'快捷方式'是空白的。 https://developer.chrome.com/extensions/commands#method-getAll提到快捷方式僅在「活動」時才顯示。但我不確定爲什麼這個快捷方式不是'主動'(我使用的是OS X 10.9,如果這很重要的話)。

其次,實際按下Cmd Shift Y或Ctrl Shift Y不會觸發後臺頁面中的事件。

如何讓我的背景頁面接收鍵盤命令?

回答

5

您是否檢查過擴展頁面底部的鍵盤快捷鍵以驗證您的建議鍵是否已在其中設置?

我遇到了類似的問題......當我加載解壓後的擴展進行開發時,建議的密鑰是而不是集,即使密鑰在清單中可用並定義。我不得不手動去自己的密鑰設置在擴展頁面。我不確定這是否是最佳解決方案,但我無法從搜索中找到任何答案。另外,當我在chrome商店上發佈我的擴展時,建議的按鍵的工作和自動設置...所以這似乎只發生在開發模式。

+0

謝謝@berrberr!官方文檔沒有在擴展頁面中提到鍵盤快捷鍵。我現在唯一的問題是,在設置快捷方式時媒體按鍵(例如,播放暫停)實際上不起作用 - 根據文檔,它們也應該沒問題。將看看商店是否有任何不同的開發模式... – mikemaccana

+0

任何人放心,我是否開發模式不會自動註冊快捷鍵? –