chrome.input.ime

Описание

Используйте API chrome.input.ime для реализации собственного редактора метода ввода (IME) для Chrome OS. Это позволит вашему расширению обрабатывать нажатия клавиш, настраивать композицию и управлять окном-кандидатом.

Разрешения

input

Для использования API input.ime необходимо указать разрешение «input» в манифесте расширения . Например:

{
  "name": "My extension",
  ...
  "permissions": [
    "input"
  ],
  ...
}

Доступность

только ChromeOS

Примеры

Следующий код создает IME, который преобразует введенные буквы в заглавные.

var context_id = -1;

chrome.input.ime.onFocus.addListener(function(context) {
  context_id = context.contextID;
});

chrome.input.ime.onKeyEvent.addListener(
  function(engineID, keyData) {
    if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
      chrome.input.ime.commitText({"contextID": context_id,
                                    "text": keyData.key.toUpperCase()});
      return true;
    } else {
      return false;
    }
  }
);

Типы

AssistiveWindowButton

Хром 85+

Идентификатор кнопок во вспомогательном окне.

Перечисление

"отменить"

"addToDictionary"

AssistiveWindowProperties

Хром 85+

Свойства вспомогательного окна.

Характеристики

  • announceString

    строка необязательная

    Строки для объявления ChromeVox.

  • тип

    "отменить"

  • видимый

    булев

    Установите значение true, чтобы отобразить AssistiveWindow, установите значение false, чтобы скрыть.

AssistiveWindowType

Хром 85+

Тип вспомогательного окна.

Ценить

"отменить"

AutoCapitalizeType

Хром 69+

Тип автоматического заглавия букв в текстовом поле.

Перечисление

"персонажи"

"слова"

"предложения"

InputContext

Описывает входной контекст

Характеристики

  • автокапитализация
    Хром 69+

    Тип автоматического заглавия букв в текстовом поле.

  • автозаполнение

    булев

    Требуется ли автозаполнение текстового поля.

  • автозамена

    булев

    Требуется ли автокоррекция текстового поля.

  • contextID

    число

    Используется для указания целей операций с текстовыми полями. Этот идентификатор становится недействительным сразу после вызова onBlur.

  • shouldDoLearning

    булев

    Хром 68+

    Следует ли использовать текст, введенный в текстовое поле, для улучшения подсказок по вводу для пользователя.

  • Проверка орфографии

    булев

    Требуется ли проверка орфографии в текстовом поле.

  • Тип значения, которое редактирует это текстовое поле (текст, число, URL и т. д.)

InputContextType

Хром 44+

Тип значения, которое редактирует это текстовое поле (текст, число, URL и т. д.)

Перечисление

"текст"

"поиск"

"тел"

"url"

"электронная почта"

"число"

"пароль"

"нулевой"

KeyboardEvent

См. http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent

Характеристики

  • altKey

    логическое необязательное

    Нажата ли клавиша ALT.

  • altgrKey

    логическое необязательное

    Хром 79+

    Нажата ли клавиша ALTGR.

  • CapsLock

    логическое необязательное

    Включен ли CAPS_LOCK.

  • код

    нить

    Значение нажатой физической клавиши. Значение не зависит от текущей раскладки клавиатуры или состояния модификатора.

  • ctrlKey

    логическое необязательное

    Нажата ли клавиша CTRL.

  • extensionId

    строка необязательная

    Идентификатор расширения отправителя этого ключевого события.

  • ключ

    нить

    Значение нажатой клавиши

  • keyCode

    номер необязательно

    Устаревший HTML-код keyCode, представляющий собой зависящий от системы и реализации числовой код, обозначающий неизмененный идентификатор, связанный с нажатой клавишей.

  • requestId

    строка необязательная

    (Устарело) Идентификатор запроса. Вместо этого используйте параметр requestId из события onKeyEvent .

  • shiftKey

    логическое необязательное

    Нажата ли клавиша SHIFT.

  • Одно из нажатий клавиши вверх или вниз.

KeyboardEventType

Хром 44+

Перечисление

"keyup"

"нажатие клавиши"

MenuItem

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

Характеристики

  • проверено

    логическое необязательное

    Указывает, что этот пункт следует оформить с проверкой.

  • включено

    логическое необязательное

    Указывает, что этот элемент включен.

  • идентификатор

    нить

    Строка, которая будет передана обратным вызовам, ссылающимся на этот MenuItem.

  • этикетка

    строка необязательная

    Текст, отображаемый в меню для этого пункта.

  • стиль

    MenuItemStyle необязательно

    Тип пункта меню.

  • видимый

    логическое необязательное

    Указывает, что этот элемент видим.

MenuItemStyle

Хром 44+

Тип пункта меню. Переключатели между разделителями считаются сгруппированными.

Перечисление

"проверять"

"радио"

"разделитель"

MenuParameters

Хром 88+

Характеристики

  • engineID

    нить

    Идентификатор используемого движка.

  • предметы

    Пункты меню для добавления или обновления. Они будут добавлены в том порядке, в котором они находятся в массиве.

MouseButton

Хром 44+

Какие кнопки мыши были нажаты.

Перечисление

"левый"

"середина"

"верно"

ScreenType

Хром 44+

Тип экрана, при котором активируется IME.

Перечисление

"нормальный"

"авторизоваться"

"замок"

"вторичный вход"

UnderlineStyle

Хром 44+

Тип подчеркивания для изменения этого сегмента.

Перечисление

"подчеркнуть"

"doubleUnderline"

"noUnderline"

WindowPosition

Хром 44+

Где отображать окно-кандидат. Если установлено значение «cursor», окно следует за курсором. Если установлено значение «composition», окно фиксируется в начале композиции.

Перечисление

"курсор"

"композиция"

Методы

clearComposition()

chrome.input.ime.clearComposition(
  parameters: object,
)
: Promise<boolean>

Очистить текущую композицию. Если это расширение не владеет активным IME, это не сработает.

Параметры

  • параметры

    объект

    • contextID

      число

      Идентификатор контекста, в котором будет очищена композиция

Возврат

  • Обещание<логическое>

    Хром 111+

commitText()

chrome.input.ime.commitText(
  parameters: object,
)
: Promise<boolean>

Применяет предоставленный текст к текущему вводу.

Параметры

  • параметры

    объект

    • contextID

      число

      Идентификатор контекста, в котором будет зафиксирован текст

    • текст

      нить

      Текст для совершения

Возврат

  • Обещание<логическое>

    Хром 111+

deleteSurroundingText()

chrome.input.ime.deleteSurroundingText(
  parameters: object,
)
: Promise<void>

Удаляет текст вокруг курсора.

Параметры

  • параметры

    объект

    • contextID

      число

      Идентификатор контекста, в котором будет удален окружающий текст.

    • engineID

      нить

      Идентификатор движка, принимающего событие.

    • длина

      число

      Количество символов, которые нужно удалить

    • компенсировать

      число

      Смещение от позиции курсора, с которого начнётся удаление. Это значение может быть отрицательным.

Возврат

  • Обещание<void>

    Хром 111+

hideInputView()

chrome.input.ime.hideInputView(): void

Скрывает окно ввода, которое автоматически открывается системой. Если окно ввода уже скрыто, эта функция ничего не сделает.

keyEventHandled()

chrome.input.ime.keyEventHandled(
  requestId: string,
  response: boolean,
)
: void

Указывает, что событие нажатия клавиши, полученное onKeyEvent, обработано. Вызывается только в том случае, если прослушиватель onKeyEvent асинхронный.

Параметры

  • requestId

    нить

    Идентификатор запроса обработанного события. Должен быть получен из keyEvent.requestId.

  • ответ

    булев

    True, если нажатие клавиши было обработано, false — если нет.

sendKeyEvents()

chrome.input.ime.sendKeyEvents(
  parameters: object,
)
: Promise<void>

Отправляет события клавиш. Эта функция предназначена для использования виртуальными клавиатурами. Когда пользователь нажимает клавишу(и) на виртуальной клавиатуре, эта функция используется для передачи события в систему.

Параметры

  • параметры

    объект

    • contextID

      число

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

    • keyData

      Данные о ключевом событии.

Возврат

  • Обещание<void>

    Хром 111+

setAssistiveWindowButtonHighlighted()

Хром 86+
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
)
: Promise<void>

Выделяет/снимает выделение кнопки во вспомогательном окне.

Параметры

  • параметры

    объект

    • announceString

      строка необязательная

      Текст, который будет озвучивать программа чтения с экрана.

    • Идентификатор кнопки

    • contextID

      число

      Идентификатор контекста, владеющего вспомогательным окном.

    • выделено

      булев

      Нужно ли выделять кнопку.

    • Тип окна

      "отменить"

      Тип окна, к которому принадлежит кнопка.

Возврат

  • Обещание<void>

    Хром 111+

setAssistiveWindowProperties()

Хром 85+
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
)
: Promise<boolean>

Показывает/скрывает вспомогательное окно с заданными свойствами.

Параметры

  • параметры

    объект

    • contextID

      число

      Идентификатор контекста, владеющего вспомогательным окном.

    • характеристики

      Свойства вспомогательного окна.

Возврат

  • Обещание<логическое>

    Хром 111+

setCandidates()

chrome.input.ime.setCandidates(
  parameters: object,
)
: Promise<boolean>

Устанавливает текущий список кандидатов. Не работает, если у этого расширения нет активного IME.

Параметры

  • параметры

    объект

    • кандидаты

      объект[]

      Список кандидатов для отображения в окне кандидатов

      • аннотация

        строка необязательная

        Дополнительный текст, описывающий кандидата

      • кандидат

        нить

        Кандидат

      • идентификатор

        число

        Удостоверение личности кандидата

      • этикетка

        строка необязательная

        Короткая строка, отображаемая рядом с кандидатом, часто это сочетание клавиш или индекс

      • parentId

        номер необязательно

        Идентификатор для добавления этих кандидатов в

      • использование

        объект необязательный

        Использование или подробное описание слова.

        • тело

          нить

          Строка тела подробного описания.

        • заголовок

          нить

          Строка заголовка описания деталей.

    • contextID

      число

      Идентификатор контекста, которому принадлежит окно-кандидат.

Возврат

  • Обещание<логическое>

    Хром 111+

setCandidateWindowProperties()

chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
)
: Promise<boolean>

Задаёт свойства окна-кандидата. Это не сработает, если расширение не владеет активным редактором метода ввода (IME).

Параметры

  • параметры

    объект

    • engineID

      нить

      Идентификатор движка, для которого необходимо задать свойства.

    • характеристики

      объект

      • вспомогательныйтекст

        строка необязательная

        Текст, который отображается в нижней части окна кандидата.

      • вспомогательныйТекстВидимый

        логическое необязательное

        True — для отображения вспомогательного текста, false — для его скрытия.

      • currentCandidateIndex

        номер необязательно

        Хром 84+

        Индекс текущего выбранного кандидата из общего числа кандидатов.

      • курсорВидимый

        логическое необязательное

        True — отобразить курсор, false — скрыть его.

      • размер страницы

        номер необязательно

        Количество кандидатов, отображаемых на странице.

      • общее количество кандидатов

        номер необязательно

        Хром 84+

        Общее количество кандидатов в окне кандидатов.

      • вертикальный

        логическое необязательное

        True, если окно-кандидат должно быть вертикальным, false — чтобы сделать его горизонтальным.

      • видимый

        логическое необязательное

        True — показать окно «Кандидат», false — скрыть его.

      • Положение окна

        WindowPosition необязательно

        Где отображать окно кандидатов.

Возврат

  • Обещание<логическое>

    Хром 111+

setComposition()

chrome.input.ime.setComposition(
  parameters: object,
)
: Promise<boolean>

Установить текущую композицию. Если это расширение не владеет активным IME, это не сработает.

Параметры

  • параметры

    объект

    • contextID

      число

      Идентификатор контекста, в котором будет установлен текст композиции

    • курсор

      число

      Положение курсора в тексте.

    • сегменты

      объект[] необязательный

      Список сегментов и связанных с ними типов.

      • конец

        число

        Индекс символа, которым следует завершить данный сегмент.

      • начинать

        число

        Индекс символа, с которого начинается этот сегмент

      • Тип подчеркивания для изменения этого сегмента.

    • выборКонец

      номер необязательно

      Позиция в тексте, на которой заканчивается выделение.

    • выборНачало

      номер необязательно

      Позиция в тексте, с которой начинается выделение.

    • текст

      нить

      Текст для установки

Возврат

  • Обещание<логическое>

    Хром 111+

setCursorPosition()

chrome.input.ime.setCursorPosition(
  parameters: object,
)
: Promise<boolean>

Установите положение курсора в окне кандидатов. Это не будет выполняться, если у этого расширения нет активного IME.

Параметры

  • параметры

    объект

    • идентификатор кандидата

      число

      Идентификатор кандидата для выбора.

    • contextID

      число

      Идентификатор контекста, которому принадлежит окно-кандидат.

Возврат

  • Обещание<логическое>

    Хром 111+

setMenuItems()

chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

Добавляет предоставленные пункты меню в языковое меню, когда этот IME активен.

Параметры

Возврат

  • Обещание<void>

    Хром 111+

updateMenuItems()

chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

Обновляет состояние указанных пунктов меню.

Параметры

Возврат

  • Обещание<void>

    Хром 111+

События

onActivate

chrome.input.ime.onActivate.addListener(
  callback: function,
)

Это событие отправляется при активации редактора метода ввода (IME). Оно сигнализирует о том, что редактор метода ввода (IME) будет получать события onKeyPress.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string, screen: ScreenType) => void

onAssistiveWindowButtonClicked

Хром 85+
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

Это событие отправляется при нажатии кнопки во вспомогательном окне.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object) => void

    • подробности

      объект

onBlur

chrome.input.ime.onBlur.addListener(
  callback: function,
)

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (contextID: number) => void

    • contextID

      число

onCandidateClicked

chrome.input.ime.onCandidateClicked.addListener(
  callback: function,
)

Это событие отправляется, если данное расширение владеет активным IME.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string, candidateID: number, button: MouseButton) => void

    • engineID

      нить

    • идентификатор кандидата

      число

    • кнопка

onDeactivated

chrome.input.ime.onDeactivated.addListener(
  callback: function,
)

Это событие отправляется при деактивации редактора метода ввода (IME). Оно сигнализирует о том, что редактор метода ввода (IME) больше не будет получать события onKeyPress.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string) => void

    • engineID

      нить

onFocus

chrome.input.ime.onFocus.addListener(
  callback: function,
)

Это событие отправляется при перемещении фокуса на текстовое поле. Оно отправляется всем расширениям, которые отслеживают это событие и включаются пользователем.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (context: InputContext) => void

onInputContextUpdate

chrome.input.ime.onInputContextUpdate.addListener(
  callback: function,
)

Это событие отправляется при изменении свойств текущего InputContext, например, типа. Оно отправляется всем расширениям, которые прослушивают это событие и включаются пользователем.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (context: InputContext) => void

onKeyEvent

chrome.input.ime.onKeyEvent.addListener(
  callback: function,
)

Срабатывает при отправке события нажатия клавиши из операционной системы. Событие будет отправлено расширению, если этому расширению принадлежит активный редактор метода ввода (IME). Функция прослушивателя должна возвращать значение true, если событие было обработано, и значение false, если не было. Если событие будет обрабатываться асинхронно, эта функция должна возвращать значение undefined, а IME должен впоследствии вызвать keyEventHandled() с результатом.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined

    • возвращается

      логическое значение | неопределенное

onMenuItemActivated

chrome.input.ime.onMenuItemActivated.addListener(
  callback: function,
)

Вызывается, когда пользователь выбирает пункт меню.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string, name: string) => void

    • engineID

      нить

    • имя

      нить

onReset

chrome.input.ime.onReset.addListener(
  callback: function,
)

Это событие отправляется, когда Chrome завершает текущий сеанс ввода текста.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string) => void

    • engineID

      нить

onSurroundingTextChanged

chrome.input.ime.onSurroundingTextChanged.addListener(
  callback: function,
)

Вызывается при изменении редактируемой строки вокруг курсора или при перемещении курсора. Длина текста ограничена 100 символами для каждого направления.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (engineID: string, surroundingInfo: object) => void

    • engineID

      нить

    • окружающаяИнформация

      объект

      • якорь

        число

        Начальная позиция выделения. Это значение указывает позицию курсора, если выделение отсутствует.

      • фокус

        число

        Конечная позиция выделения. Это значение указывает позицию курсора, если выделение отсутствует.

      • компенсировать

        число

        Хром 46+

        Смещение позиции text . Поскольку text включает в себя только подмножество текста вокруг курсора, смещение указывает абсолютную позицию первого символа text .

      • текст

        нить

        Текст вокруг курсора. Это лишь часть всего текста в поле ввода.