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 candidata.
Permisos
input
Debes declarar el permiso de “entrada” en el manifiesto de extensión para usar la API de input.ime. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Ejemplos
El siguiente código crea un IME que convierte letras escritas en 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
ID de los botones en la ventana asistiva.
Enum
"addToDictionary"
AssistiveWindowProperties
Propiedades de la ventana asistiva.
Propiedades
-
announceString
cadena opcional
Cadenas que se deben anunciar en ChromeVox.
-
tipo
-
visible
boolean
Establece el valor verdadero para mostrar AssistiveWindow y establece el valor falso para ocultarlo.
AssistiveWindowType
Tipo de ventana asistiva.
Valor
AutoCapitalizeType
Indica el tipo de mayúsculas automáticas del campo de texto.
Enum
InputContext
Describe un contexto de entrada
Propiedades
-
autoCapitalizeChrome 69 y versiones posteriores
Indica el tipo de mayúsculas automáticas del campo de texto.
-
autoComplete
boolean
Si el campo de texto desea autocompletar.
-
autoCorrect
boolean
Si el campo de texto desea la autocorrección
-
contextID
número
Se usa para especificar los objetivos de las operaciones de campos de texto. Este ID deja de ser válido en cuanto se llama a onBlur.
-
shouldDoLearning
boolean
Chrome 68 y versiones posterioresSi el texto ingresado en el campo de texto debe usarse para mejorar las sugerencias de escritura para el usuario.
-
spellCheck
boolean
Si el campo de texto desea corregir la ortografía
-
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
"tel"
"url"
"null"
KeyboardEvent
Consultar http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
Propiedades
-
altKey
booleano opcional
Indica si se presiona o no la tecla ALT.
-
altgrKey
booleano opcional
Chrome 79 y versiones posterioresIndica si se presiona o no la tecla ALTGR.
-
capsLock
booleano opcional
Indica si CAPS_LOCK está habilitado o no.
-
código
cadena
Valor de la tecla física que se presiona. El valor no se ve afectado por el diseño actual del teclado ni el estado del modificador.
-
ctrlKey
booleano opcional
Indica si se presiona o no la tecla CTRL.
-
extensionId
cadena opcional
El ID de extensión del remitente de este evento clave.
-
clave
cadena
Valor de la tecla que se presiona
-
keyCode
número opcional
El keyCode de HTML obsoleto, que es un código numérico que depende del sistema y de la implementación, y que indica el identificador no modificado asociado con la tecla presionada.
-
requestId
cadena opcional
El ID de la solicitud (obsoleto). En su lugar, usa el parámetro
requestId
del eventoonKeyEvent
. -
shiftKey
booleano opcional
Indica si se presiona o no la tecla MAYÚSCULA.
-
tipo
Puede ser keyup o keydown.
KeyboardEventType
Enum
MenuItem
Un elemento de menú que un método de entrada usa para interactuar con el usuario desde el menú de idioma.
Propiedades
-
elemento marcado
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
cadena
Es la cadena que se pasará a las devoluciones de llamada que hacen referencia a este MenuItem.
-
etiqueta
cadena opcional
Texto que se muestra en el menú de este elemento.
-
estilo
MenuItemStyle opcional
Es el tipo de elemento del menú.
-
visible
booleano opcional
Indica que este elemento es visible.
MenuItemStyle
Es el tipo de elemento del menú. Los botones de selección entre separadores se consideran agrupados.
Enum
"radio"
MenuParameters
Propiedades
-
engineID
cadena
ID del motor que se usará.
-
items
MenuItems para agregar o actualizar Se agregarán en el orden en que existen en el array.
MouseButton
Los botones del mouse se hicieron clic.
Enum
"left"
ScreenType
El tipo de pantalla en el que se activa el IME.
Enum
"secondary-login"
UnderlineStyle
El tipo de subrayado para modificar este segmento.
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
Dónde mostrar la ventana de candidatos. Si se configura como “cursor”, la ventana sigue el cursor. Si se establece en “composition”, la ventana se bloquea al comienzo de la composición.
Enum
"cursor"
Métodos
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
callback?: function,
)
Borra la composición actual. Si esta extensión no es propietaria del 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
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
commitText()
chrome.input.ime.commitText(
parameters: object,
callback?: function,
)
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
-
text
cadena
El texto que se confirmará
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
callback?: function,
)
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 que lo rodea.
-
engineID
cadena
ID del motor que recibe el evento.
-
length
número
La cantidad de caracteres que se borrarán
-
offset
número
El desplazamiento desde la posición del signo de intercalación donde comenzará la eliminación. Este valor puede ser negativo.
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
hideInputView()
chrome.input.ime.hideInputView()
Oculta la ventana de vista de entrada, que el sistema abre automáticamente. Si la ventana de vista de entrada ya está oculta, esta función no realizará ninguna acción.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
)
Indica que se controla el evento clave que recibió onKeyEvent. Solo se debe llamar a este método si el objeto de escucha onKeyEvent es asíncrono.
Parámetros
-
requestId
cadena
Es el ID de solicitud del evento que se controló. Debe provenir de keyEvent.requestId.
-
respuesta
boolean
Es verdadero si se manejó la combinación de teclas y falso si no lo hizo.
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
callback?: function,
)
Envía los eventos de tecla. Se espera que los teclados virtuales utilicen esta función. Cuando un usuario presiona las teclas de un teclado virtual, esta función se usa para propagar ese evento al sistema.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto al que se enviarán los eventos de tecla, o cero para enviar los eventos de tecla al campo sin entrada.
-
keyData
Datos sobre el evento clave
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
callback?: function,
)
Destaca o deja de destacar un botón en una ventana asistiva.
Parámetros
-
Parámetros
objeto
-
announceString
cadena opcional
Es el texto que debe anunciar el lector de pantalla.
-
buttonID
El ID del botón
-
contextID
número
ID del contexto propietario de la ventana de asistencia.
-
destacado
boolean
Si el botón debe destacarse.
-
windowType
El tipo de ventana al que pertenece el botón
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
callback?: function,
)
Muestra u oculta una ventana asistiva con las propiedades determinadas.
Parámetros
-
Parámetros
objeto
-
contextID
número
ID del contexto propietario de la ventana de asistencia.
-
properties
Propiedades de la ventana asistiva.
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
callback?: function,
)
Establece la lista de candidatos actuales. Esta acción falla si la extensión no tiene el IME activo
Parámetros
-
Parámetros
objeto
-
candidatos
objeto
Lista de candidatos para mostrar en la ventana de candidatos
-
anotación
cadena opcional
Texto adicional que describe al candidato
-
candidato
cadena
El candidato
-
id
número
ID del candidato
-
etiqueta
cadena opcional
Cadena corta que se muestra junto a la variante, a menudo la combinación de teclas o el índice
-
parentId
número opcional
El ID en el que se agregarán estos candidatos
-
uso
objeto opcional
Es la descripción de uso o detalle de la palabra.
-
body
cadena
Es la cadena de cuerpo de la descripción detallada.
-
title
cadena
Es la cadena de título de la descripción de detalles.
-
-
-
contextID
número
ID del contexto que posee la ventana de candidatos.
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
callback?: function,
)
Establece las propiedades de la ventana de candidatos. Esta acción falla si la extensión no tiene el IME activo
Parámetros
-
Parámetros
objeto
-
engineID
cadena
ID del motor en el que se configurarán las propiedades.
-
properties
objeto
-
auxiliaryText
cadena opcional
Texto que se muestra en la parte inferior de la ventana de candidatos.
-
auxiliaryTextVisible
booleano opcional
El valor es verdadero para mostrar el texto auxiliar y el valor falso para ocultarlo.
-
currentCandidateIndex
número opcional
Chrome 84 y versiones posterioresEs el índice del candidato elegido actual del total de candidatos.
-
cursorVisible
booleano opcional
El valor es verdadero para mostrar el cursor y falso para ocultarlo.
-
pageSize
número opcional
Es la cantidad de candidatos que se muestran por página.
-
totalCandidates
número opcional
Chrome 84 y versiones posterioresEs la cantidad total de candidatos para el período de candidatos.
-
vertical
booleano opcional
Es verdadero si la ventana de candidata se debe renderizar en vertical. También es falso para que sea horizontal.
-
visible
booleano opcional
Si esta preferencia se muestra como verdadero, se muestra la ventana Candidate y el valor es falso, para ocultarla.
-
windowPosition
WindowPosition opcional
Dónde mostrar la ventana de candidatos.
-
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setComposition()
chrome.input.ime.setComposition(
parameters: object,
callback?: function,
)
Establece la composición actual. Si esta extensión no es propietaria del 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 en el texto del cursor.
-
segmentos similares
objeto[] opcional
Lista de segmentos y sus tipos asociados.
-
end
número
Índice del carácter después del que finaliza este segmento.
-
start
número
Índice del carácter en el que comienza este segmento
-
estilo
El tipo de subrayado para modificar este segmento.
-
-
selectionEnd
número opcional
Posición en el texto en el que finaliza la selección.
-
selectionStart
número opcional
Posición en el texto en el que comienza la selección.
-
text
cadena
Texto para definir
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
callback?: function,
)
Establece la posición del cursor en la ventana de candidatos. Esta es una no-op si la extensión no posee el IME activo.
Parámetros
-
Parámetros
objeto
-
candidateID
número
ID del candidato a seleccionar.
-
contextID
número
ID del contexto que posee la ventana de candidatos.
-
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean)=>void
-
correcto
boolean
-
Devuelve
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
callback?: function,
)
Agrega los elementos de menú proporcionados al menú de idiomas cuando este IME está activo.
Parámetros
-
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
callback?: function,
)
Actualiza el estado de los MenuItems especificados
Parámetros
-
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.
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 de onKeyPress.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string,screen: ScreenType)=>void
-
engineID
cadena
-
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 asistiva.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(details: object)=>void
-
detalles
objeto
-
buttonID
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 escuchan este evento y el usuario lo habilita.
Parámetros
-
callback
la 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 la extensión es propietaria del IME activo.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string,candidateID: number,button: MouseButton)=>void
-
engineID
cadena
-
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
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string)=>void
-
engineID
cadena
-
onFocus
chrome.input.ime.onFocus.addListener(
callback: function,
)
Este evento se envía cuando el foco ingresa a un cuadro de texto. Se envía a todas las extensiones que escuchan este evento y el usuario lo habilita.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(context: InputContext)=>void
-
Contexto
-
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 escuchan este evento y el usuario lo habilita.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(context: InputContext)=>void
-
Contexto
-
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
Se activa cuando se envía un evento clave desde el sistema operativo. El evento se enviará a la extensión si esta es propietaria del IME activo. La función de escucha debe mostrar "true" si el evento se controló como "false" de lo contrario. Si el evento se evalúa de forma asíncrona, esta función debe mostrar un valor indefinido y el IME debe llamar más tarde a keyEventHandled() con el resultado.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string,keyData: KeyboardEvent,requestId: string)=>boolean|undefined
-
engineID
cadena
-
keyData
-
requestId
cadena
-
resultados
boolean|undefined
-
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Se llama cuando el usuario selecciona un elemento de menú.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string,name: string)=>void
-
engineID
cadena
-
name
cadena
-
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
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string)=>void
-
engineID
cadena
-
onSurroundingTextChanged
chrome.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Se llama cuando se 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 en cada dirección de ida y vuelta.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(engineID: string,surroundingInfo: object)=>void
-
engineID
cadena
-
surroundingInfo
objeto
-
ancla
número
Es la posición inicial de la selección. Este valor indica la posición del signo de intercalación si no hay selección.
-
enfoque
número
Es la posición final de la selección. Este valor indica la posición del signo de intercalación si no hay selección.
-
offset
número
Chrome 46 y versiones posterioresLa 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
. -
text
cadena
El texto que rodea el cursor. Esto es solo un subconjunto de todo el texto del campo de entrada.
-
-