Descripción
Usa la API de chrome.input.ime
para implementar un IME personalizado para ChromeOS. Esto permite que tu extensión controle las pulsaciones de teclas, establezca la composición y administre la ventana de candidatos.
Permisos
input
Debes declarar el permiso "input" en el manifiesto de la extensión para usar la API de input.ime. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Disponibilidad
Ejemplos
El siguiente código crea un IME que convierte las letras escritas a mayúsculas.
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;
}
}
);
Tipos
AssistiveWindowButton
Es el ID de los botones en la ventana de asistencia.
Enum
"deshacer"
"addToDictionary"
AssistiveWindowProperties
Propiedades de la ventana de asistencia.
Propiedades
-
announceString
cadena opcional
Son las cadenas que ChromeVox anunciará.
-
tipo
"deshacer"
-
visible
booleano
Establece el valor en verdadero para mostrar AssistiveWindow y en falso para ocultarlo.
AssistiveWindowType
Es el tipo de ventana de asistencia.
Valor
"deshacer"
AutoCapitalizeType
Tipo de capitalización automática del campo de texto.
Enum
"characters"
"words"
"sentences"
InputContext
Describe un contexto de entrada
Propiedades
-
autoCapitalizeChrome 69 y versiones posteriores
Tipo de capitalización automática del campo de texto.
-
autoComplete
booleano
Indica si el campo de texto desea autocompletar.
-
autoCorrect
booleano
Indica si el campo de texto requiere autocorrección.
-
contextID
número
Se usa para especificar los destinos de las operaciones de campos de texto. Este ID deja de ser válido en cuanto se llama a onBlur.
-
shouldDoLearning
booleano
Chrome 68 y versiones posterioresIndica si el texto ingresado en el campo de texto se debe usar para mejorar las sugerencias de escritura para el usuario.
-
spellCheck
booleano
Indica si el campo de texto requiere revisión ortográfica.
-
tipo
Tipo de valor que edita este campo de texto (texto, número, URL, etcétera)
InputContextType
Tipo de valor que edita este campo de texto (texto, número, URL, etcétera)
Enum
"text"
"search"
"tel"
"url"
"email"
"number"
"password"
"null"
KeyboardEvent
Consulta http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
Propiedades
-
altKey
booleano opcional
Indica si se presionó la tecla ALT.
-
altgrKey
booleano opcional
Chrome 79 y versiones posterioresIndica si se presionó la tecla ALTGR.
-
capsLock
booleano opcional
Indica si CAPS_LOCK está habilitado o no.
-
código
string
Es el valor de la tecla física que se presiona. El valor no se ve afectado por el diseño del teclado actual ni por el estado del modificador.
-
ctrlKey
booleano opcional
Indica si se presionó la tecla CTRL.
-
extensionId
cadena opcional
Es el ID de la extensión del remitente de este KeyEvent.
-
clave
string
Valor de la tecla que se presiona
-
keyCode
número opcional
Es el keyCode de HTML obsoleto, que es un código numérico dependiente del sistema y de la implementación que indica el identificador sin modificar asociado a la tecla presionada.
-
requestId
cadena opcional
(Obsoleto) ID de la solicitud. En su lugar, usa el parámetro
requestId
del eventoonKeyEvent
. -
shiftKey
booleano opcional
Indica si se presionó la tecla MAYÚS.
-
tipo
Puede ser keyup o keydown.
KeyboardEventType
Enum
"keyup"
"keydown"
MenuItem
Es un elemento de menú que usa un método de entrada para interactuar con el usuario desde el menú de idioma.
Propiedades
-
activado
booleano opcional
Indica que este elemento se debe dibujar con una marca de verificación.
-
habilitado
booleano opcional
Indica que este elemento está habilitado.
-
id
string
Es la cadena que se pasará a las devoluciones de llamada que hagan referencia a este MenuItem.
-
etiqueta
cadena opcional
Es el texto que se muestra en el menú para este elemento.
-
estilo
MenuItemStyle opcional
Es el tipo de elemento de menú.
-
visible
booleano opcional
Indica que este elemento es visible.
MenuItemStyle
Es el tipo de elemento de menú. Los botones de selección entre separadores se consideran agrupados.
Enum
"check"
"radio"
"separator"
MenuParameters
Propiedades
-
engineID
string
Es el ID del motor que se usará.
-
elementos
MenuItem[]
MenuItems que se agregarán o actualizarán. Se agregarán en el orden en que aparecen en el array.
MouseButton
Qué botones del mouse se presionaron.
Enum
"left"
"middle"
"right"
ScreenType
Es el tipo de pantalla en el que se activa el IME.
Enum
"normal"
"login"
"lock"
"secondary-login"
UnderlineStyle
Es el tipo de subrayado para modificar este segmento.
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
Dónde se mostrará la ventana de candidatos. Si se configura como "cursor", la ventana sigue al cursor. Si se configura como "composición", la ventana se bloquea al principio de la composición.
Enum
"cursor"
"composición"
Métodos
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
Borra la composición actual. Si esta extensión no posee el IME activo, se producirá un error.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto en el que se borrará la composición
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
commitText()
chrome.input.ime.commitText(
parameters: object,
): Promise<boolean>
Confirma el texto proporcionado en la entrada actual.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto en el que se confirmará el texto
-
texto
string
El texto que se confirmará
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
Borra el texto alrededor del signo de intercalación.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto en el que se borrará el texto circundante.
-
engineID
string
Es el ID del motor que recibe el evento.
-
longitud
número
Cantidad de caracteres que se borrarán
-
offset
número
Es el desplazamiento desde la posición del cursor donde comenzará la eliminación. Este valor puede ser negativo.
-
Muestra
-
Promise<void>
Chrome 111 y versiones posteriores
hideInputView()
chrome.input.ime.hideInputView(): void
Oculta la ventana de la vista de entrada, que el sistema muestra automáticamente. Si la ventana de la vista de entrada ya está oculta, esta función no hará nada.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
Indica que se controla el evento de tecla recibido por onKeyEvent. Solo se debe llamar a este método si el agente de escucha onKeyEvent es asíncrono.
Parámetros
-
requestId
string
Es el ID de la solicitud del evento que se controló. Debe provenir de keyEvent.requestId.
-
respuesta
booleano
Devuelve verdadero si se controló la presión de tecla y falso si no se controló.
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
Envía los eventos de clave. Se espera que los teclados virtuales usen esta función. Cuando un usuario presiona teclas en un teclado virtual, esta función se usa para propagar ese evento al sistema.
Parámetros
-
Parámetros
objeto
-
contextID
número
Es el ID del contexto en el que se enviarán los eventos de clave o cero para enviar eventos de clave a un campo que no sea de entrada.
-
keyData
Son los datos del evento clave.
-
Muestra
-
Promise<void>
Chrome 111 y versiones posteriores
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
Resalta o deja de resaltar un botón en una ventana de asistencia.
Parámetros
-
Parámetros
objeto
-
announceString
cadena opcional
Es el texto que el lector de pantalla debe anunciar.
-
buttonID
ID del botón
-
contextID
número
ID del contexto propietario de la ventana de asistencia.
-
destacado
booleano
Indica si el botón debe destacarse.
-
windowType
"deshacer"
Es el tipo de ventana al que pertenece el botón.
-
Muestra
-
Promise<void>
Chrome 111 y versiones posteriores
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
Muestra u oculta una ventana de asistencia con las propiedades proporcionadas.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto propietario de la ventana de asistencia.
-
propiedades
Propiedades de la ventana de asistencia.
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
Establece la lista de candidatos actual. Esta acción falla si la extensión no posee el IME activo.
Parámetros
-
Parámetros
objeto
-
candidatos
object[]
Lista de candidatos para mostrar en la ventana de candidatos
-
anotación
cadena opcional
Texto adicional que describe al candidato
-
candidato
string
El candidato
-
id
número
El ID del candidato
-
etiqueta
cadena opcional
Cadena corta que se muestra junto al candidato, a menudo la tecla de acceso directo o el índice
-
parentId
número opcional
Es el ID en el que se agregarán estos candidatos.
-
uso
objeto opcional
Es la descripción del uso o el detalle de la palabra.
-
body
string
Es la cadena del cuerpo de la descripción detallada.
-
título
string
Es la cadena de título de la descripción de los detalles.
-
-
-
contextID
número
ID del contexto que posee la ventana de candidatos.
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
Establece las propiedades de la ventana de candidatos. Esta acción falla si la extensión no posee el IME activo.
Parámetros
-
Parámetros
objeto
-
engineID
string
Es el ID del motor en el que se establecerán las propiedades.
-
propiedades
objeto
-
auxiliaryText
cadena opcional
Es el texto que se muestra en la parte inferior de la ventana de candidatos.
-
auxiliaryTextVisible
booleano opcional
Es verdadero para mostrar el texto auxiliar y falso para ocultarlo.
-
currentCandidateIndex
número opcional
Chrome 84 y versiones posterioresÍndice del candidato elegido actualmente en relación con el total de candidatos.
-
cursorVisible
booleano opcional
Es verdadero para mostrar el cursor y falso para ocultarlo.
-
pageSize
número opcional
Es la cantidad de candidatos que se mostrarán por página.
-
totalCandidates
número opcional
Chrome 84 y versiones posterioresEs la cantidad total de candidatos para la ventana de candidatos.
-
vertical
booleano opcional
Es verdadero si la ventana candidata debe renderizarse verticalmente y falso para que sea horizontal.
-
visible
booleano opcional
Es verdadero para mostrar la ventana de candidatos y falso para ocultarla.
-
windowPosition
WindowPosition opcional
Dónde se mostrará la ventana de candidatos.
-
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
setComposition()
chrome.input.ime.setComposition(
parameters: object,
): Promise<boolean>
Establece la composición actual. Si esta extensión no posee el IME activo, se producirá un error.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto en el que se establecerá el texto de composición
-
cursor
número
Posición del cursor en el texto.
-
segmentos similares
object[] opcional
Es una lista de segmentos y sus tipos asociados.
-
end
número
Índice del carácter después del cual finaliza este segmento.
-
start
número
Índice del carácter en el que comienza este segmento
-
estilo
Es el tipo de subrayado para modificar este segmento.
-
-
selectionEnd
número opcional
Posición en el texto en la que finaliza la selección.
-
selectionStart
número opcional
Posición en el texto en la que comienza la selección.
-
texto
string
Texto para configurar
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
Establece la posición del cursor en la ventana de candidatos. Esta es una operación nula si la extensión no posee el IME activo.
Parámetros
-
Parámetros
objeto
-
candidateID
número
ID del candidato que se seleccionará.
-
contextID
número
ID del contexto que posee la ventana de candidatos.
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posteriores
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
Agrega los elementos de menú proporcionados al menú de idiomas cuando este IME está activo.
Parámetros
-
Parámetros
Muestra
-
Promise<void>
Chrome 111 y versiones posteriores
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Actualiza el estado de los elementos de menú especificados.
Parámetros
-
Parámetros
Muestra
-
Promise<void>
Chrome 111 y versiones posteriores
Eventos
onActivate
chrome.input.ime.onActivate.addListener(
callback: function,
)
Este evento se envía cuando se activa un IME. Indica que el IME recibirá eventos onKeyPress.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string, screen: ScreenType) => void
-
engineID
string
-
pantalla
-
onAssistiveWindowButtonClicked
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Este evento se envía cuando se hace clic en un botón de una ventana de asistencia.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
buttonID
Es el ID del botón en el que se hizo clic.
-
windowType
Es el tipo de ventana de asistencia.
-
-
onBlur
chrome.input.ime.onBlur.addListener(
callback: function,
)
Este evento se envía cuando el enfoque sale de un cuadro de texto. Se envía a todas las extensiones que están escuchando este evento y que el usuario habilitó.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(contextID: number) => void
-
contextID
número
-
onCandidateClicked
chrome.input.ime.onCandidateClicked.addListener(
callback: function,
)
Este evento se envía si esta extensión posee el IME activo.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
string
-
candidateID
número
-
botón
-
onDeactivated
chrome.input.ime.onDeactivated.addListener(
callback: function,
)
Este evento se envía cuando se desactiva un IME. Indica que el IME ya no recibirá eventos onKeyPress.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string) => void
-
engineID
string
-
onFocus
chrome.input.ime.onFocus.addListener(
callback: function,
)
Este evento se envía cuando el enfoque ingresa en un cuadro de texto. Se envía a todas las extensiones que están escuchando este evento y que el usuario habilitó.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(context: InputContext) => void
-
context
-
onInputContextUpdate
chrome.input.ime.onInputContextUpdate.addListener(
callback: function,
)
Este evento se envía cuando cambian las propiedades del InputContext actual, como el tipo. Se envía a todas las extensiones que están escuchando este evento y que el usuario habilitó.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(context: InputContext) => void
-
context
-
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
Se activa cuando el sistema operativo envía un evento de tecla. El evento se enviará a la extensión si esta posee el IME activo. La función de escucha debe devolver verdadero si se controló el evento y falso si no se controló. Si el evento se evaluará de forma asíncrona, esta función debe devolver un valor no definido y el IME debe llamar a keyEventHandled() más adelante con el resultado.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
string
-
keyData
-
requestId
string
-
returns
boolean | undefined
-
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Se llama cuando el usuario selecciona un elemento de menú.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string, name: string) => void
-
engineID
string
-
nombre
string
-
onReset
chrome.input.ime.onReset.addListener(
callback: function,
)
Este evento se envía cuando Chrome finaliza la sesión de entrada de texto en curso.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string) => void
-
engineID
string
-
onSurroundingTextChanged
chrome.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Se llama cuando cambia la cadena editable alrededor del signo de intercalación o cuando se mueve la posición del signo de intercalación. La longitud del texto se limita a 100 caracteres para cada dirección de ida y vuelta.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(engineID: string, surroundingInfo: object) => void
-
engineID
string
-
surroundingInfo
objeto
-
ancla
número
Posición inicial de la selección. Este valor indica la posición del cursor si no hay ninguna selección.
-
enfoque
número
Es la posición final de la selección. Este valor indica la posición del cursor si no hay ninguna selección.
-
offset
número
Chrome 46 y versiones posterioresEs la posición de desplazamiento de
text
. Dado quetext
solo incluye un subconjunto de texto alrededor del cursor, el desplazamiento indica la posición absoluta del primer carácter detext
. -
texto
string
Es el texto que aparece alrededor del cursor. Este es solo un subconjunto de todo el texto del campo de entrada.
-
-