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 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"
  ],
  ...
}

Disponibilidad

Solo para ChromeOS

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

Chrome 85 y versiones posteriores

ID de los botones de la ventana de asistencia.

Enum

"addToDictionary"

AssistiveWindowProperties

Chrome 85 y versiones posteriores

Propiedades de la ventana de asistencia.

Propiedades

  • announceString

    string opcional

    Cadenas que ChromeVox debe anunciar.

  • Tipo

  • visible

    boolean

    Establece el valor "true" para mostrar AssistiveWindow y establece "false" para ocultarlo.

AssistiveWindowType

Chrome 85 y versiones posteriores

Tipo de ventana de asistencia.

Valor

AutoCapitalizeType

Chrome 69 y versiones posteriores

El tipo de uso de mayúsculas automático del campo de texto.

Enum

"characters"

InputContext

Describe un contexto de entrada.

Propiedades

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

    Indica 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 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

"url"

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

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

    cadena

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

  • shiftKey

    booleano opcional

    Indica si se presiona o no la tecla MAYÚSCULAS.

  • Una función keyup o keydown.

KeyboardEventType

Chrome 44 y versiones posteriores

Enum

MenuItem

Es un elemento de menú que utiliza un método de entrada 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 de recurso

    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

Chrome 44 y versiones posteriores

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

Enum

MenuParameters

Chrome 88 y versiones posteriores

Propiedades

  • engineID

    cadena

    Es el ID del motor que se usará.

  • items

    MenuItems para agregar o actualizar. Se agregarán en el orden en que existan en el array.

MouseButton

Chrome 44 y versiones posteriores

En qué botones del mouse se hizo clic.

Enum

ScreenType

Chrome 44 y versiones posteriores

Indica el tipo de pantalla bajo el cual se activa el IME.

Enum

"login"

"secondary-login"

UnderlineStyle

Chrome 44 y versiones posteriores

Es el tipo de subrayado que se usará para modificar este segmento.

Enum

WindowPosition

Chrome 44 y versiones posteriores

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

Métodos

clearComposition()

Promesa
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

Devuelve

  • Promise<boolean>

    Chrome 111 y versiones posteriores

    Las 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()

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

    Las 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()

Promesa
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

      cadena

      Es el 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 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

Devuelve

  • Promise<void>

    Chrome 111 y versiones posteriores

    Las 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 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

    cadena

    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()

Promesa
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

Devuelve

  • Promise<void>

    Chrome 111 y versiones posteriores

    Las 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()

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

    • 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

      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 posteriores

    Las 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()

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

    • 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

Devuelve

  • Promise<boolean>

    Chrome 111 y versiones posteriores

    Las 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()

Promesa
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

      objeto

      Lista de candidatos que se mostrarán en la ventana de candidatos

      • anotación

        string opcional

        Texto adicional que describe el candidato

      • candidato

        cadena

        El candidato

      • id

        número

        El ID del candidato

      • etiqueta de recurso

        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

          cadena

          La cadena de cuerpo de la descripción detallada.

        • title

          cadena

          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

Devuelve

  • Promise<boolean>

    Chrome 111 y versiones posteriores

    Las 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()

Promesa
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

      cadena

      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 posteriores

        El í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 posteriores

        Es 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

Devuelve

  • Promise<boolean>

    Chrome 111 y versiones posteriores

    Las 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()

Promesa
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

      • Es el tipo de subrayado que se usará 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 establecer

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

    Las 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()

Promesa
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

Devuelve

  • Promise<boolean>

    Chrome 111 y versiones posteriores

    Las 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()

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

    Las 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()

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

    Las 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 onKeyPress.

Parámetros

  • callback

    la 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

    la 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 deja un cuadro de texto. Se envía a todas las extensiones que escuchan este evento y que el usuario 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 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

    la 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 escuchan este evento y que el usuario habilita.

Parámetros

  • callback

    la 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 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

    la función

    El parámetro callback se ve de la siguiente manera:

    (engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined

    • resultados

      booleano | no definido

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 tiene un límite de 100 caracteres para 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 posteriores

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

      • text

        cadena

        El texto alrededor del cursor. Esto es solo un subconjunto de todo el texto del campo de entrada.