Описание
Используйте 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
Идентификатор кнопок во вспомогательном окне.
Перечисление
"отменить" "добавить словарь"
AssistiveWindowProperties
Свойства вспомогательного окна.
Характеристики
- анонсстрока
строка необязательна
Строки для объявления ChromeVox.
- тип
"отменить"
- видимый
логическое значение
Устанавливает true, чтобы показать AssistiveWindow, устанавливает false, чтобы скрыть.
AssistiveWindowType
Тип вспомогательного окна.
Ценить
"отменить"
AutoCapitalizeType
Тип автоматической капитализации текстового поля.
Перечисление
"персонажи" "слова" "предложения"
InputContext
Описывает входной контекст
Характеристики
- автокапитализацияХром 69+
Тип автоматической капитализации текстового поля.
- автозаполнение
логическое значение
Требуется ли автозаполнение текстового поля.
- автозамена
логическое значение
Требуется ли автокоррекция текстового поля.
- идентификатор контекста
число
Используется для указания целей операций с текстовыми полями. Этот идентификатор становится недействительным, как только вызывается onBlur.
- следуетDoLearning
логическое значение
Хром 68+Следует ли использовать текст, введенный в текстовое поле, для улучшения предложений по вводу для пользователя.
- проверка правописания
логическое значение
Требуется ли проверка орфографии в текстовом поле.
Тип значения, которое редактируется это текстовое поле (текст, число, URL-адрес и т. д.)
InputContextType
Тип значения, которое редактируется это текстовое поле (текст, число, 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
Перечисление
"клавиатура" "нажатие клавиши"
MenuItem
Пункт меню, используемый методом ввода для взаимодействия с пользователем из языкового меню.
Характеристики
- проверено
логическое значение необязательно
Указывает, что этот элемент должен быть отмечен галочкой.
- включено
логическое значение необязательно
Указывает, что этот элемент включен.
- идентификатор
нить
Строка, которая будет передана в обратные вызовы, ссылающиеся на этот MenuItem.
- этикетка
строка необязательна
Текст, отображаемый в меню для этого пункта.
- стиль
MenuItemStyle необязательно
Тип пункта меню.
- видимый
логическое значение необязательно
Указывает, что этот элемент виден.
MenuItemStyle
Тип пункта меню. Радиокнопки между разделителями считаются сгруппированными.
Перечисление
"проверять" "радио" "сепаратор"
MenuParameters
Характеристики
- идентификатор двигателя
нить
Идентификатор используемого движка.
- предметы
МенюЭлемент []
MenuItems для добавления или обновления. Они будут добавлены в том порядке, в котором они существуют в массиве.
MouseButton
Какие кнопки мыши были нажаты.
Перечисление
"левый" "середина" "верно"
ScreenType
Тип экрана, под которым активируется IME.
Перечисление
"нормальный" "авторизоваться" "замок" "вторичный логин"
UnderlineStyle
Тип подчеркивания для изменения этого сегмента.
Перечисление
"подчеркнуть" "двойное подчеркивание" "без подчеркивания"
WindowPosition
Где отображать окно кандидатов. Если установлено значение «курсор», окно следует за курсором. Если установлено значение «композиция», окно фиксируется в начале композиции.
Перечисление
"курсор" "композиция"
Методы
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.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
callback?: function,
)
Выделяет/снимает выделение кнопки во вспомогательном окне.
Параметры
- параметры
объект
- анонсстрока
строка необязательна
Текст, который объявляет программа чтения с экрана.
- идентификатор кнопки
Идентификатор кнопки
- идентификатор контекста
число
Идентификатор контекста, которому принадлежит вспомогательное окно.
- выделено
логическое значение
Должна ли кнопка быть подсвечена.
- тип окна
"отменить"
Тип окна, которому принадлежит кнопка.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 111+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
setAssistiveWindowProperties()
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
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Это событие отправляется при нажатии кнопки во вспомогательном окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(details: object) => void
- подробности
объект
- идентификатор кнопки
Идентификатор нажатой кнопки.
- тип окна
Тип вспомогательного окна.
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,
)
Это событие отправляется, когда фокус попадает в текстовое поле. Оно отправляется всем расширениям, которые прослушивают это событие, и включается пользователем.
Параметры
- перезвонить
функция
Параметр
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
- идентификатор двигателя
нить
- имя
нить
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
. - текст
нить
Текст вокруг курсора. Это лишь часть всего текста в поле ввода.