API команд Chrome

Я загрузил этот образец расширения из документации Chrome, который использует API команд.

manifest.json

{
"name": "Sample Extension Commands extension",
  "description": "Press Ctrl+Shift+F (Command+Shift+F on a Mac) to open the browser action popup, press Ctrl+Shift+Y to send an event (Command+Shift+Y on a Mac).",
  "version": "1.0",
  "manifest_version": 2,
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_popup": "browser_action.html"
  },
  "commands": {
    "toggle-feature": {
      "suggested_key": { "default": "Ctrl+Shift+Y" },
      "description": "Send a 'toggle-feature' event to the extension"
    },
    "_execute_browser_action": {
      "suggested_key": {
        "default": "Ctrl+Shift+F",
        "mac": "MacCtrl+Shift+F"
      }
    }
  }
}

background.js

chrome.commands.onCommand.addListener(function(command) {
  console.log('onCommand event received for message: ', command);
});

Очень просто, но обратный вызов слушателя не запускается - я не получаю ни вывода в консоли, ни каких-либо ошибок. Если я использую другой API, например вкладки, мои слушатели запускаются должным образом, это просто API команд, который у меня не работает.


person Brian Spilner    schedule 25.10.2013    source источник
comment
Если вы еще этого не сделали, перейдите к chrome://extensions и проверьте, действительно ли ваши клавиши назначены вашим командам, используя ссылку «Сочетания клавиш» в правом нижнем углу.   -  person rsanchez    schedule 26.10.2013
comment
Ладно, я совершенно не знал об этой ссылке на горячие клавиши. Я установил там свой ярлык, и теперь он работает. Итак, для чего подходит опция scheme_key? Он даже не отображается в окне «Сочетания клавиш» как предлагаемый вариант. Кстати спасибо   -  person Brian Spilner    schedule 26.10.2013
comment
Вы работаете с распакованным расширением? Вам необходимо удалить и повторно добавить расширение, чтобы предлагаемые сочетания клавиш учитывались.   -  person rsanchez    schedule 26.10.2013
comment
Да, ты прав. Еще раз спасибо   -  person Brian Spilner    schedule 26.10.2013


Ответы (2)


Комментатор rsanchez дает правильный ответ:

Вы работаете с распакованным расширением? Вам необходимо удалить и повторно добавить расширение, чтобы предлагаемые сочетания клавиш учитывались.

person Michael Johansen    schedule 23.12.2013
comment
К сожалению, нет, по крайней мере, для текущей версии (Chrome 34) пользователь должен изменить эти сочетания клавиш вручную, используя ссылку Сочетания клавиш внизу этой страницы: chrome: // extensions / - Обратите внимание, что при установке расширения в первый раз все горячие клавиши будут добавлены, но последующих изменений не будет. - person Michael Johansen; 06.05.2014
comment
Потребовалась бы целая вечность, чтобы понять это. - person Amit G; 23.06.2016

Я столкнулся с той же проблемой, и эти предложения не помогли. Вот что я понял: поскольку вы объявили скрипт со слушателем в разделе background: {}, он регистрируется на фоновой странице. Вы можете просмотреть этот журнал, щелкнув «Проверить фоновую страницу» прямо под расширением в chrome://extensions. вот куда входит слушатель.

person yrizk    schedule 20.03.2017