chrome.input.ime

Описание

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

Разрешения

input

Вы должны объявить разрешение «вход» в манифесте расширения , чтобы использовать API input.ime. Например:

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

Примеры

Следующий код создает 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+

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

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

"отменить"

"добавить словарь"

AssistiveWindowProperties

Хром 85+

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

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

  • анонсстрока

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

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

  • тип

    "отменить"

  • видимый

    логическое значение

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

AssistiveWindowType

Хром 85+

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

Ценить

"отменить"

AutoCapitalizeType

Хром 69+

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

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

"персонажи"

"слова"

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

InputContext

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

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

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

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

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

    логическое значение

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

  • автозамена

    логическое значение

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

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

    число

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

  • следуетDoLearning

    логическое значение

    Хром 68+

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

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

    логическое значение

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

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

InputContextType

Хром 44+

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

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

"текст"

"поиск"

"тел"

"URL-адрес"

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

"число"

"пароль"

"нулевой"

KeyboardEvent

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

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

  • altKey

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

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

  • altgrKey

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

    Хром 79+

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

  • колпачкиЗамок

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

    Включен ли CAPS_LOCK.

  • код

    нить

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

  • клавиша Ctrl

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

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

  • идентификатор расширения

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

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

  • ключ

    нить

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

  • ключевой код

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

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

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

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

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

  • ShiftKey

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

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

  • Одно из клавиш нажатия или нажатия клавиши.

KeyboardEventType

Хром 44+

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

"клавиатура"

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

MenuItem

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

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

  • проверено

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

    Указывает, что этот элемент должен быть отмечен галочкой.

  • включено

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

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

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

    нить

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

  • этикетка

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

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

  • стиль

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

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

  • видимый

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

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

MenuItemStyle

Хром 44+

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

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

"проверять"

"радио"

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

MenuParameters

Хром 88+

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

  • идентификатор двигателя

    нить

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

  • предметы

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

MouseButton

Хром 44+

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

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

"левый"

"середина"

"верно"

ScreenType

Хром 44+

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

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

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

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

"замок"

"вторичный логин"

UnderlineStyle

Хром 44+

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

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

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

"двойное подчеркивание"

"без подчеркивания"

WindowPosition

Хром 44+

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

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

"курсор"

"состав"

Методы

clearComposition()

Обещать
chrome.input.ime.clearComposition(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

commitText()

Обещать
chrome.input.ime.commitText(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

    • текст

      нить

      Текст для фиксации

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

deleteSurroundingText()

Обещать
chrome.input.ime.deleteSurroundingText(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

    • идентификатор двигателя

      нить

      Идентификатор механизма, получающего событие.

    • длина

      число

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

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

      число

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

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

    функция необязательна

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

    ()=>void

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

hideInputView()

chrome.input.ime.hideInputView()

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

keyEventHandled()

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

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

Параметры

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

    нить

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

  • ответ

    логическое значение

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

sendKeyEvents()

Обещать
chrome.input.ime.sendKeyEvents(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

    • ключевые данные

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

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

    функция необязательна

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

    ()=>void

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setAssistiveWindowButtonHighlighted()

Обещание Chrome 86+
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

    • анонсстрока

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

      Текст, который объявляет программа чтения с экрана.

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

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

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

      число

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

    • выделено

      логическое значение

      Должна ли кнопка быть подсвечена.

    • тип окна

      "отменить"

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

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

    функция необязательна

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

    ()=>void

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setAssistiveWindowProperties()

Обещание Chrome 85+
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setCandidates()

Обещать
chrome.input.ime.setCandidates(
  parameters: object,
  callback?: function,
)

Устанавливает текущий список кандидатов. Это не удастся, если этому расширению не принадлежит активный IME.

Параметры

  • параметры

    объект

    • кандидаты

      объект[]

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

      • аннотация

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

        Дополнительный текст с описанием кандидата

      • кандидат

        нить

        Кандидат

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

        число

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

      • этикетка

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

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

      • родительский идентификатор

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

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

      • Применение

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

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

        • тело

          нить

          Основная строка подробного описания.

        • заголовок

          нить

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

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

      число

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setCandidateWindowProperties()

Обещать
chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
  callback?: function,
)

Устанавливает свойства окна-кандидата. Это не удастся, если расширение не владеет активным IME.

Параметры

  • параметры

    объект

    • идентификатор двигателя

      нить

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

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

      объект

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

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

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

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

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

        Значение true для отображения вспомогательного текста и значение false для его скрытия.

      • текущийКандидатИндекс

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

        Хром 84+

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

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

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

        Значение true, чтобы показать курсор, значение false, чтобы скрыть его.

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

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

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

      • всего кандидатов

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

        Хром 84+

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

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

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

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

      • видимый

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

        Значение true, чтобы показать окно кандидата, значение false, чтобы его скрыть.

      • окноПозиция

        ОкноПозицион необязательно

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setComposition()

Обещать
chrome.input.ime.setComposition(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

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

    • курсор

      число

      Позиция в тексте курсора.

    • сегменты

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

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

      • конец

        число

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

      • начинать

        число

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

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

    • выборКонец

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

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

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

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

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

    • текст

      нить

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setCursorPosition()

Обещать
chrome.input.ime.setCursorPosition(
  parameters: object,
  callback?: function,
)

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

Параметры

  • параметры

    объект

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

      число

      Идентификатор кандидата, которого необходимо выбрать.

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

      число

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

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

    функция необязательна

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

    (success: boolean)=>void

    • успех

      логическое значение

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

setMenuItems()

Обещать
chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

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

Параметры

  • параметры
  • перезвонить

    функция необязательна

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

    ()=>void

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

updateMenuItems()

Обещать
chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

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

Параметры

  • параметры
  • перезвонить

    функция необязательна

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

    ()=>void

Возврат

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

    Хром 111+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

События

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,
)

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

Параметры

onBlur

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

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

Параметры

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

    функция

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

    (contextID: number)=>void

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

      число

onCandidateClicked

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

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

Параметры

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

    функция

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

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

    • идентификатор двигателя

      нить

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

      число

    • кнопка

onDeactivated

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

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

Параметры

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

    функция

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

    (engineID: string)=>void

    • идентификатор двигателя

      нить

onFocus

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

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

Параметры

onInputContextUpdate

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

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

Параметры

onKeyEvent

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

Запускается, когда ключевое событие отправляется из операционной системы. Событие будет отправлено расширению, если этому расширению принадлежит активный IME. Функция прослушивателя должна возвращать true, если событие было обработано, false, если это не так. Если событие будет оцениваться асинхронно, эта функция должна вернуть значение undefine, а 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

    • идентификатор двигателя

      нить

    • имя

      нить

onReset

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

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

Параметры

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

    функция

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

    (engineID: string)=>void

    • идентификатор двигателя

      нить

onSurroundingTextChanged

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

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

Параметры

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

    функция

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

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

    • идентификатор двигателя

      нить

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

      объект

      • якорь

        число

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

      • фокус

        число

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

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

        число

        Хром 46+

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

      • текст

        нить

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