chrome.input.ime

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

Solo en ChromeOS

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

Chrome 85 y versiones posteriores

Es el ID de los botones en la ventana de asistencia.

Enum

"deshacer"

"addToDictionary"

AssistiveWindowProperties

Chrome 85 y versiones posteriores

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

Chrome 85 y versiones posteriores

Es el tipo de ventana de asistencia.

Valor

"deshacer"

AutoCapitalizeType

Chrome 69 y versiones posteriores

Tipo de capitalización automática del campo de texto.

Enum

"characters"

"words"

"sentences"

InputContext

Describe un contexto de entrada

Propiedades

  • autoCapitalize
    Chrome 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 posteriores

    Indica 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 de valor que edita este campo de texto (texto, número, URL, etcétera)

InputContextType

Chrome 44 y versiones posteriores

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 posteriores

    Indica 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 evento onKeyEvent.

  • shiftKey

    booleano opcional

    Indica si se presionó la tecla MAYÚS.

  • Puede ser keyup o keydown.

KeyboardEventType

Chrome 44 y versiones posteriores

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

Chrome 44 y versiones posteriores

Es el tipo de elemento de menú. Los botones de selección entre separadores se consideran agrupados.

Enum

"check"

"radio"

"separator"

MenuParameters

Chrome 88 y versiones posteriores

Propiedades

  • engineID

    string

    Es el ID del motor que se usará.

  • elementos

    MenuItems que se agregarán o actualizarán. Se agregarán en el orden en que aparecen en el array.

MouseButton

Chrome 44 y versiones posteriores

Qué botones del mouse se presionaron.

Enum

"left"

"middle"

"right"

ScreenType

Chrome 44 y versiones posteriores

Es el tipo de pantalla en el que se activa el IME.

Enum

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Chrome 44 y versiones posteriores

Es el tipo de subrayado para modificar este segmento.

Enum

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 y versiones posteriores

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 86 y versiones posteriores
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.

    • 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 85 y versiones posteriores
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 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 posteriores

        Es 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

      • 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

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

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

onAssistiveWindowButtonClicked

Chrome 85 y versiones posteriores
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

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

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

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

    • 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 posteriores

        Es la posición de desplazamiento de text. Dado que text solo incluye un subconjunto de texto alrededor del cursor, el desplazamiento indica la posición absoluta del primer carácter de text.

      • texto

        string

        Es el texto que aparece alrededor del cursor. Este es solo un subconjunto de todo el texto del campo de entrada.