вторник, 18 февраля 2014 г.

Omnibox

image

Позволяет задать ключевое слово, после введения которого в адресной строке управление получает ваше расширение и может предлагать свои варианты. И в конечном итоге получает окончательный выбор пользователя.

Зачем это надо, что можно сделать на основе такого API?

Пример:

после ввода ключевого слова “торрент” активируется расширение для поиска по трекерам. Оно подключается к сервису для метапоиска по трекерам и передает туда пользовательский ввод, а в ответ получает варианты популярных запросов, содержащих те же слова. После окончательного ввода расширение инициирует переход к найденному торренту, а если ничего не найдено – к поиску гугла.

Аналогично можно сделать расширение для поиска по магазинам, социальным сетям и т.д.

Тоже самое можно сделать просто запуском приложения в панели приложений, но возможно кому-то будет удобнее так

Манифест

{
"name": "Aaron's omnibox extension",
"version": "1.0",
"omnibox": { "keyword" : "aaron" },
"icons": {
"16": "16-full-color.png"
},
"background": {
"persistent": false,
"scripts": ["background.js"]
}
}

Требуется задать параметр omnibox – в нем указывается ключевое слово. И иконку 16х16.


Справочник по API


Типы


SuggestResult результат предположения
Свойства



  • content ( string ) Текст, который помещается в строку адреса и будет отправлен расширению если пользователь его выберет

  • description ( string ) Текст который будет отображаться в выпадающем боксе. Может содержать XML разметку, теги url, match (для подсветки текста совпадающего с вводом пользователя) и dim (хз зачем).

Методы


setDefaultSuggestion


chrome.omnibox.setDefaultSuggestion(object suggestion)
Устанавливает первое предположение, которое выводится, когда пользователь ввел только само ключевое слово


Параметры


suggestion ( object ) усеченный SuggestResult  объект – без свойства content.


События


onInputStarted


Пользователь ввел ключевое слово. Посылается один раз, в начале сеанса и до того как произойдет хоть одно событие onInputChanged.


addListener


Метод добавляющий обработчик событий.


chrome.omnibox.onInputStarted.addListener(function callback)
Параметры


callback ( function ) функция вида function() {...}


onInputChanged


Пользователь ввел что-то еще в строке поиска


addListener


chrome.omnibox.onInputChanged.addListener(function callback)
Параметры


callback ( function ) функция вида function(string text, function suggest) {...}



  • text ( string ) введенное значение

  • suggest ( function ) функция чтобы отправить предположение

onInputEntered


Пользователь принял предложенный вариант


addListener


chrome.omnibox.onInputEntered.addListener(function callback)
Параметры


callback ( function ) функция вида function(string text, string disposition) {...}. 



  • text – окончательный вариант ввода

  • disposition м.б. "currentTab", "newForegroundTab", или "newBackgroundTab" – рекомендованный вариант где открывать результат, в текущей вкладке или в новой.

onInputCancelled


Пользователь завершил ввод, но ни одного предложенного варианта не принял


addListener


chrome.omnibox.onInputCancelled.addListener(function callback)
Параметры


callback ( function ) функция вида function() {...}

Комментариев нет:

Отправить комментарий