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 la “entrada” permiso en el manifiesto de extensión para usar la API input.ime. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Disponibilidad
Ejemplos
El siguiente código crea un IME que convierte las 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 de la ventana de asistencia.
Enum
"deshacer"
"addToDictionary"
AssistiveWindowProperties
Propiedades de la ventana de asistencia.
Propiedades
-
announceString
string opcional
Cadenas que ChromeVox debe anunciar.
-
tipo
"deshacer"
-
visible
boolean
Establece el valor "true" para mostrar AssistiveWindow y establece "false" para ocultarlo.
AssistiveWindowType
Tipo de ventana de asistencia.
Valor
"deshacer"
AutoCapitalizeType
El tipo de uso de mayúsculas automático del campo de texto.
Enum
"characters"
"palabras"
“sentences”
InputContext
Describe un contexto de entrada.
Propiedades
-
autoCapitalizeChrome 69 y versiones posteriores
El tipo de uso de mayúsculas automático del campo de texto.
-
autoComplete
boolean
Indica si el campo de texto desea la función de autocompletar.
-
autoCorrect
boolean
Indica si el campo de texto desea la corrección automática.
-
contextID
número
Se usa para especificar los destinos de las operaciones de campo de texto. Este ID deja de ser válido en cuanto se llama a onBlur.
-
shouldDoLearning
boolean
Chrome 68 y versiones posterioresIndica si el texto ingresado en el campo debe usarse para mejorar las sugerencias de escritura para el usuario.
-
spellCheck
boolean
Indica si el campo de texto requiere el corrector ortográfico.
-
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
"texto"
“buscar”
“tel”
"url"
“correo electrónico”
"número"
"contraseña"
“null”
KeyboardEvent
Consulta http://www.w3.org/TR/DOM-Level-3-Events/#events-TecladoEvent.
Propiedades
-
altKey
booleano opcional
Si se presiona o no la tecla ALT.
-
altgrKey
booleano opcional
Chrome 79 y versiones posterioresSi se presiona o no la tecla ALTGR.
-
capsLock
booleano opcional
Indica si CAPS_LOCK está habilitado o no.
-
código
string
Valor de la tecla física que se presiona. El valor no se ve afectado por el diseño actual del teclado ni por el estado del modificador.
-
ctrlKey
booleano opcional
Define si se presiona o no la tecla CTRL.
-
extensionId
string opcional
El ID de extensión del remitente de este evento clave.
-
clave
string
Valor de la tecla que se presiona
-
keyCode
número opcional
KeyCode HTML obsoleto, que es un código numérico dependiente del sistema y de la implementación que indica el identificador sin modificar asociado con la tecla presionada.
-
requestId
string opcional
(Obsoleto) Es el ID de la solicitud. En su lugar, usa el parámetro
requestId
del eventoonKeyEvent
. -
shiftKey
booleano opcional
Indica si se presiona o no la tecla MAYÚSCULAS.
-
tipo
Una función keyup o keydown.
KeyboardEventType
Enum
“keyup”
“keydown”
MenuItem
Es un elemento de menú que utiliza 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 hacen referencia a este MenuItem.
-
etiqueta
string opcional
Es el texto que se muestra en el menú de 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 para agregar o actualizar. Se agregarán en el orden en que existan en el array.
MouseButton
En qué botones del mouse se hizo clic.
Enum
“izquierda”
“medio”
“derecha”
ScreenType
Indica el tipo de pantalla bajo el cual se activa el IME.
Enum
“normal”
"login"
“bloquear”
"secondary-login"
UnderlineStyle
Es el tipo de subrayado para modificar este segmento.
Enum
“subrayado”
"Doubleunderline"
“no Underline”
WindowPosition
Dónde se debe mostrar la ventana de candidatos. Si la estableces como "cursor", la ventana seguirá al cursor. Si se configura como “composition”, la ventana se bloquea al comienzo de la composición.
Enum
“cursor”
“composition”
Métodos
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
callback?: function,
)
Borra la composición actual. Si esta extensión no posee el IME activo, esta acción fallará.
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
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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
-
texto
string
El texto que se confirmará
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 que rodea el signo de intercalación.
Parámetros
-
Parámetros
objeto
-
contextID
número
Es el ID del contexto en el que se borrará el texto que lo rodea.
-
engineID
string
Es el ID del motor que recibe el evento.
-
longitud
número
La cantidad de caracteres que se borrarán
-
offset
número
El desplazamiento desde la posición del signo de intercalación en la que comenzará la eliminación. Este valor puede ser negativo.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 hará nada.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
)
Indica que se controla el evento clave que recibió onKeyEvent. Solo se debe llamar si el objeto de escucha onKeyEvent es asíncrono.
Parámetros
-
requestId
string
Es el ID de solicitud del evento que se manejó. Debería provenir de keyEvent.requestId
-
respuesta
boolean
Verdadero si se manejó la combinación de teclas; falso si no lo hizo
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
callback?: function,
)
Envía los eventos clave. Se espera que esta función se use en teclados virtuales. 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
Es el ID del contexto al que se enviarán los eventos de tecla, o cero para enviar eventos de tecla al campo que no es de entrada.
-
keyData
Datos sobre el evento clave
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 no destaca un botón en una ventana de asistencia.
Parámetros
-
Parámetros
objeto
-
announceString
string opcional
El texto que anunciará el lector de pantalla.
-
buttonID
El ID del botón
-
contextID
número
Es el ID del contexto al que pertenece la ventana de asistencia.
-
destacado
boolean
Si el botón debe destacarse.
-
windowType
"deshacer"
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
Muestra
-
Promesa<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 de asistencia con las propiedades determinadas.
Parámetros
-
Parámetros
objeto
-
contextID
número
Es el ID del contexto al que pertenece la ventana de asistencia.
-
properties
Propiedades de la ventana de asistencia.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 actual. Esta acción fallará si la extensión no posee el IME activo
Parámetros
-
Parámetros
objeto
-
candidatos
object[]
Lista de candidatos que se mostrarán en la ventana de candidatos
-
anotación
string opcional
Texto adicional que describe el candidato
-
candidato
string
El candidato
-
id
número
El ID del candidato
-
etiqueta
string opcional
Cadena corta que se muestra junto al candidato (a menudo, la combinación de teclas o el índice)
-
parentId
número opcional
El ID en el que se deben agregar estos candidatos
-
uso
objeto opcional
El uso o la descripción detallada de la palabra.
-
body
string
La cadena de cuerpo de la descripción detallada.
-
título
string
La cadena del título de los detalles y la descripción.
-
-
-
contextID
número
ID del contexto que posee la ventana de candidato.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 candidato. Esta acción falla si la extensión no posee el IME activo
Parámetros
-
Parámetros
objeto
-
engineID
string
ID del motor para establecer las propiedades.
-
properties
objeto
-
auxiliaryText
string opcional
Texto que se muestra en la parte inferior de la ventana del candidato.
-
auxiliaryTextVisible
booleano opcional
True para mostrar el texto auxiliar; false para ocultarlo.
-
currentCandidateIndex
número opcional
Chrome 84 y versiones posterioresEl índice del candidato elegido actualmente del total de candidatos.
-
cursorVisible
booleano opcional
Si estableces el valor "True" para mostrar el cursor, usa el valor "false" para ocultarlo.
-
pageSize
número opcional
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 del período de candidatos.
-
vertical
booleano opcional
Es verdadero si la ventana candidata se debe renderizar en vertical. Usa el valor falso para que sea horizontal.
-
visible
booleano opcional
True para mostrar la ventana Candidate, false para ocultarla.
-
windowPosition
WindowPosition opcional
Dónde se debe mostrar la ventana de candidatos.
-
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 posee el IME activo, esta acción fallará.
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
object[] opcional
Es una lista de segmentos y sus tipos asociados.
-
end
número
Índice del carácter al que debe terminar este segmento después.
-
start
número
Índice del carácter en el que debe comenzar este segmento
-
estilo
Es 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.
-
texto
string
Texto para establecer
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 candidato. Esta acción no funcionará si la extensión no posee el IME activo.
Parámetros
-
Parámetros
objeto
-
candidateID
número
Es el ID del candidato que se seleccionará.
-
contextID
número
ID del contexto que posee la ventana de candidato.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(success: boolean) => void
-
correcto
boolean
-
Muestra
-
Promise<boolean>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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
Muestra
-
Promesa<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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
Muestra
-
Promesa<void>
Chrome 111 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El 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 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
El ID del botón en el que se hizo clic.
-
windowType
El tipo de ventana de asistencia.
-
-
onBlur
chrome.input.ime.onBlur.addListener(
callback: function,
)
Este evento se envía cuando el enfoque deja un cuadro de texto. Se envía a todas las extensiones que escuchan este evento y que el usuario habilita.
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 la extensión es propietaria del 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 foco está en un cuadro de texto. Se envía a todas las extensiones que escuchan este evento y que el usuario habilita.
Parámetros
-
callback
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 que el usuario habilita.
Parámetros
-
callback
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 de tecla desde el sistema operativo. El evento se enviará a la extensión si esta es propietaria del IME activo. La función del objeto de escucha debe mostrar el valor true si el evento fue manejado como false, de lo contrario. Si el evento se evalúa de forma asíncrona, esta función debe mostrar un valor indefinido y, luego, el IME debe llamar a keyEventHandled() 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
-
muestra
boolean | indefinido
-
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 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 tiene un límite de 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
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 posterioresEs la posición de desplazamiento de
text
. Dado quetext
solo incluye un subconjunto de texto alrededor del cursor, offset indica la posición absoluta del primer carácter detext
. -
texto
string
El texto alrededor del cursor. Esto es solo un subconjunto de todo el texto del campo de entrada.
-
-