chrome.input.ime

Descrição

Use a API chrome.input.ime para implementar um IME personalizado para o Chrome OS. Isso permite que sua extensão processe pressionamentos de tecla, defina a composição e gerencie a janela de candidatos.

Permissões

input

É preciso declarar o campo "input" permissão no manifesto de extensão para usar a API input.ime. Por exemplo:

{
  "name": "My extension",
  ...
  "permissions": [
    "input"
  ],
  ...
}

Disponibilidade

Somente ChromeOS

Exemplos

O código a seguir cria um IME que converte letras digitadas em maiú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 ou superior

ID dos botões na janela assistiva.

Enumeração

"desfazer"

"addToDictionary"

AssistiveWindowProperties

Chrome 85 ou superior

Propriedades da janela assistiva.

Propriedades

  • announceString

    string opcional

    Strings que serão anunciadas pelo ChromeVox.

  • tipo

    "desfazer"

  • visível

    booleano

    Define "true" para mostrar a AssistiveWindow, define "false" para ocultar.

AssistiveWindowType

Chrome 85 ou superior

Tipo de janela assistiva.

Valor

"desfazer"

AutoCapitalizeType

Chrome 69 ou superior

O tipo de letras maiúsculas automaticamente do campo de texto.

Enumeração

"caracteres"

"palavras"

"frases"

InputContext

Descreve um contexto de entrada

Propriedades

  • autoCapitalize
    Chrome 69 ou superior

    O tipo de letras maiúsculas automaticamente do campo de texto.

  • autoComplete

    booleano

    Indica se o campo de texto precisa ser preenchido automaticamente.

  • autoCorrect

    booleano

    Indica se o campo de texto precisa de correção automática.

  • contextID

    number

    É usado para especificar destinos de operações de campo de texto. Esse ID se torna inválido assim que o onBlur é chamado.

  • shouldDoLearning

    booleano

    Chrome 68 ou superior

    Define se o texto inserido no campo de texto deve ser usado para melhorar as sugestões de digitação para o usuário.

  • spellCheck

    booleano

    Indica se o campo de texto precisa de verificação ortográfica.

  • Tipo de valor que este campo de texto edita (texto, número, URL etc.)

InputContextType

Chrome 44 ou superior

Tipo de valor que este campo de texto edita (texto, número, URL etc.)

Enumeração

"texto"

"pesquisar"

"tel"

"url"

"e-mail"

"número"

"senha"

"nulo"

KeyboardEvent

Consulte http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent

Propriedades

  • altKey

    booleano opcional

    Se a tecla ALT está ou não pressionada.

  • altgrKey

    booleano opcional

    Chrome 79 ou superior

    Se a tecla ALTGR está ou não pressionada.

  • capsLock

    booleano opcional

    Se CAPS_LOCK está ativado ou não.

  • código

    string

    Valor da tecla física que está sendo pressionada. O valor não é afetado pelo layout atual do teclado nem pelo estado do modificador.

  • ctrlKey

    booleano opcional

    Se a tecla CTRL está ou não pressionada.

  • extensionId

    string opcional

    O ID da extensão do remetente desse evento de tecla.

  • chave

    string

    Valor da tecla pressionada

  • keyCode

    número opcional

    O keyCode HTML descontinuado, que é o código numérico que depende do sistema e da implementação, significando o identificador não modificado associado à tecla pressionada.

  • requestId

    string opcional

    (Descontinuado) O ID da solicitação. Use o parâmetro requestId do evento onKeyEvent.

  • shiftKey

    booleano opcional

    Se a tecla SHIFT está ou não pressionada.

  • Um keyup ou keydown.

KeyboardEventType

Chrome 44 ou superior

Enumeração

"keyup"

"keydown"

MenuItem

Item de menu usado por um método de entrada para interagir com o usuário no menu de idiomas.

Propriedades

  • marcado

    booleano opcional

    Indica que este item deve ser desenhado com uma marca de seleção.

  • ativado

    booleano opcional

    Indica que o item está ativado.

  • id

    string

    String que será transmitida para callbacks que fazem referência a esse MenuItem.

  • o rótulo.

    string opcional

    Texto exibido no menu deste item.

  • estilo

    MenuItemStyle opcional

    Tipo de item de menu.

  • visível

    booleano opcional

    Indica que o item está visível.

MenuItemStyle

Chrome 44 ou superior

Tipo de item de menu. Os botões de opção entre separadores são considerados agrupados.

Enumeração

"marcar"

"rádio"

"separador"

MenuParameters

Chrome 88 ou superior

Propriedades

  • engineID

    string

    ID do mecanismo a ser usado.

  • itens

    MenuItems para adicionar ou atualizar. Eles serão adicionados na ordem em que estiverem na matriz.

MouseButton

Chrome 44 ou superior

Quais botões do mouse foram clicados.

Enumeração

"esquerda"

"meio"

"direita"

ScreenType

Chrome 44 ou superior

O tipo de tela em que o IME é ativado.

Enumeração

"normal"

"fazer login"

"bloquear"

"secundário-login"

UnderlineStyle

Chrome 44 ou superior

O tipo de sublinhado para modificar este segmento.

Enumeração

"sublinhado"

"doubleunderline"

"nounderline"

WindowPosition

Chrome 44 ou superior

Onde exibir a janela do candidato. Se definida como "cursor", a janela seguirá o cursor. Se definida como "composição", a janela será bloqueada para o início da composição.

Enumeração

"cursor"

"composição"

Métodos

clearComposition()

Promessa
chrome.input.ime.clearComposition(
  parameters: object,
  callback?: function,
)

Limpar a composição atual. Se essa extensão não for proprietária do IME ativo, ocorrerá uma falha.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto em que a composição será apagada

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

commitText()

Promessa
chrome.input.ime.commitText(
  parameters: object,
  callback?: function,
)

Confirma o texto fornecido na entrada atual.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto em que o texto será confirmado

    • texto

      string

      O texto a ser confirmado

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

deleteSurroundingText()

Promessa
chrome.input.ime.deleteSurroundingText(
  parameters: object,
  callback?: function,
)

Exclui o texto ao redor do cursor.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto em que o texto ao redor será excluído.

    • engineID

      string

      ID do mecanismo que recebe o evento.

    • comprimento

      number

      O número de caracteres a serem excluídos

    • offset

      number

      O deslocamento da posição do acento circunflexo em que a exclusão começará. Esse valor pode ser negativo.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

hideInputView()

chrome.input.ime.hideInputView()

Oculta a janela de visualização de entrada, que é aberta automaticamente pelo sistema. Se a janela de visualização de entrada já estiver oculta, essa função não terá efeito.

keyEventHandled()

chrome.input.ime.keyEventHandled(
  requestId: string,
  response: boolean,
)

Indica que o evento principal recebido pelo onKeyEvent é processado. Só será chamado se o listener onKeyEvent for assíncrono.

Parâmetros

  • requestId

    string

    ID da solicitação do evento que foi processado. Deve vir de keyEvent.requestId

  • resposta

    booleano

    Verdadeiro se o pressionamento de tecla tiver sido processado, falso se não for

sendKeyEvents()

Promessa
chrome.input.ime.sendKeyEvents(
  parameters: object,
  callback?: function,
)

Envia os eventos principais. Espera-se que essa função seja usada por teclados virtuais. Quando um usuário pressiona teclas em um teclado virtual, essa função é usada para propagar esse evento para o sistema.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto para onde os eventos principais vão ser enviados ou zero para enviar eventos principais a um campo que não é de entrada.

    • keyData

      Dados sobre o evento principal.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setAssistiveWindowButtonHighlighted()

Promessa Chrome 86 ou versão mais recente
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)

Realiza/refaz o destaque de um botão em uma janela assistiva.

Parâmetros

  • parâmetros

    objeto

    • announceString

      string opcional

      O texto a ser anunciado pelo leitor de tela.

    • O ID do botão

    • contextID

      number

      ID do contexto que tem a janela assistiva.

    • em destaque

      booleano

      Indica se o botão deve ser destacado.

    • windowType

      "desfazer"

      O tipo de janela a que o botão pertence.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setAssistiveWindowProperties()

Promessa Chrome 85 ou versão mais recente
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
  callback?: function,
)

Mostra/oculta uma janela assistiva com as propriedades fornecidas.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto que tem a janela assistiva.

    • Propriedades da janela assistiva.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setCandidates()

Promessa
chrome.input.ime.setCandidates(
  parameters: object,
  callback?: function,
)

Define a lista de candidatos atual. Isso falhará se a extensão não for proprietária do IME ativo

Parâmetros

  • parâmetros

    objeto

    • candidatos

      object[]

      Lista de candidatos a serem mostrados na janela correspondente

      • anotação

        string opcional

        Texto adicional que descreve o candidato

      • candidato

        string

        O candidato

      • id

        number

        O ID do candidato

      • o rótulo.

        string opcional

        String curta exibida ao lado do candidato, geralmente a tecla de atalho ou índice

      • parentId

        número opcional

        O ID ao qual adicionar esses candidatos

      • utilização

        objeto opcional

        O uso ou a descrição detalhada da palavra.

        • body

          string

          A string do corpo da descrição de detalhes.

        • título

          string

          A string do título da descrição dos detalhes.

    • contextID

      number

      ID do contexto proprietário da janela candidata.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setCandidateWindowProperties()

Promessa
chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
  callback?: function,
)

Define as propriedades da janela candidata. Isso falhará se a extensão não for proprietária do IME ativo

Parâmetros

  • parâmetros

    objeto

    • engineID

      string

      ID do mecanismo em que as propriedades serão definidas.

    • properties

      objeto

      • auxiliaryText

        string opcional

        Texto mostrado na parte de baixo da janela de candidatos.

      • auxiliaryTextVisible

        booleano opcional

        Verdadeiro para exibir o texto auxiliar, falso para ocultá-lo.

      • currentCandidateIndex

        número opcional

        Chrome 84 ou superior

        O índice do candidato escolhido atualmente em relação ao total de candidatos.

      • cursorVisible

        booleano opcional

        "True" para mostrar o cursor, "false" para ocultá-lo.

      • pageSize

        número opcional

        O número de candidatos a serem exibidos por página.

      • totalCandidates

        número opcional

        Chrome 84 ou superior

        O número total de candidatos para a janela de candidatos.

      • categoria

        booleano opcional

        "True", se a janela candidata precisa ser renderizada na vertical, "false" para torná-la horizontal.

      • visível

        booleano opcional

        True para mostrar a janela Candidate, false para ocultá-la.

      • windowPosition

        WindowPosition opcional

        Onde exibir a janela do candidato.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setComposition()

Promessa
chrome.input.ime.setComposition(
  parameters: object,
  callback?: function,
)

Define a composição atual. Se essa extensão não for proprietária do IME ativo, ocorrerá uma falha.

Parâmetros

  • parâmetros

    objeto

    • contextID

      number

      ID do contexto em que o texto de composição será definido

    • cursor

      number

      Posição no texto do cursor.

    • segmentos

      objeto[] opcional

      Lista de segmentos e seus tipos associados.

      • end

        number

        Índice do caractere para terminar este segmento depois.

      • start

        number

        Índice do caractere no qual iniciar este segmento

      • O tipo de sublinhado para modificar este segmento.

    • selectionEnd

      número opcional

      Posição no texto em que a seleção termina.

    • selectionStart

      número opcional

      Posição no texto em que a seleção começa.

    • texto

      string

      Texto a ser definido

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setCursorPosition()

Promessa
chrome.input.ime.setCursorPosition(
  parameters: object,
  callback?: function,
)

Defina a posição do cursor na janela candidata. Este será um ambiente autônomo se esta extensão não for proprietária do IME ativo.

Parâmetros

  • parâmetros

    objeto

    • candidateID

      number

      ID do candidato a ser selecionado.

    • contextID

      number

      ID do contexto proprietário da janela candidata.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

setMenuItems()

Promessa
chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

Adiciona os itens de menu fornecidos ao menu de idiomas quando este IME está ativo.

Parâmetros

  • parâmetros
  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

updateMenuItems()

Promessa
chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

Atualiza o estado dos MenuItems especificados

Parâmetros

  • parâmetros
  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 111 ou versões mais recentes

    O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.

Eventos

onActivate

chrome.input.ime.onActivate.addListener(
  callback: function,
)

Esse evento é enviado quando um IME é ativado. Sinaliza que o IME receberá eventos onKeyPress.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string, screen: ScreenType) => void

onAssistiveWindowButtonClicked

Chrome 85 ou superior
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

Este evento é enviado quando um botão em uma janela assistiva é clicado.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (details: object) => void

onBlur

chrome.input.ime.onBlur.addListener(
  callback: function,
)

Este evento é enviado quando o foco sai de uma caixa de texto. Ele é enviado a todas as extensões que estão detectando esse evento e ativado pelo usuário.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (contextID: number) => void

    • contextID

      number

onCandidateClicked

chrome.input.ime.onCandidateClicked.addListener(
  callback: function,
)

Este evento é enviado se esta extensão for proprietária do IME ativo.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string, candidateID: number, button: MouseButton) => void

    • engineID

      string

    • candidateID

      number

    • botão

onDeactivated

chrome.input.ime.onDeactivated.addListener(
  callback: function,
)

Esse evento é enviado quando um IME é desativado. Ele sinaliza que o IME não receberá mais eventos onKeyPress.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string) => void

    • engineID

      string

onFocus

chrome.input.ime.onFocus.addListener(
  callback: function,
)

Esse evento é enviado quando o foco entra em uma caixa de texto. Ele é enviado a todas as extensões que estão detectando esse evento e ativado pelo usuário.

Parâmetros

onInputContextUpdate

chrome.input.ime.onInputContextUpdate.addListener(
  callback: function,
)

Esse evento é enviado quando as propriedades do InputContext atual mudam, como o tipo. Ele é enviado a todas as extensões que estão detectando esse evento e ativado pelo usuário.

Parâmetros

onKeyEvent

chrome.input.ime.onKeyEvent.addListener(
  callback: function,
)

Disparado quando um evento de tecla é enviado do sistema operacional. O evento será enviado para a extensão se ela for proprietária do IME ativo. A função do listener deve retornar verdadeiro se o evento tiver sido tratado como falso, se não foi. Se o evento for avaliado de forma assíncrona, essa função deverá retornar "undefined" e o IME precisará chamar keyEventHandled() com o resultado.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

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

    • retorna

      boolean | indefinido

onMenuItemActivated

chrome.input.ime.onMenuItemActivated.addListener(
  callback: function,
)

Chamado quando o usuário seleciona um item de menu.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string, name: string) => void

    • engineID

      string

    • nome

      string

onReset

chrome.input.ime.onReset.addListener(
  callback: function,
)

Este evento é enviado quando o Chrome encerra a sessão de entrada de texto em andamento.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string) => void

    • engineID

      string

onSurroundingTextChanged

chrome.input.ime.onSurroundingTextChanged.addListener(
  callback: function,
)

Chamado quando a string editável ao redor do cursor é alterada ou quando a posição do cursor é movida. O tamanho do texto é limitado a 100 caracteres para cada direção.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (engineID: string, surroundingInfo: object) => void

    • engineID

      string

    • surroundingInfo

      objeto

      • âncora

        number

        Posição inicial da seleção. Esse valor indica a posição do cursor de texto se não houver seleção.

      • foco

        number

        A posição final da seleção. Esse valor indica a posição do cursor de texto se não houver seleção.

      • offset

        number

        Chrome 46 ou superior

        A posição de deslocamento de text. Como text inclui apenas um subconjunto de texto ao redor do cursor, o deslocamento indica a posição absoluta do primeiro caractere de text.

      • texto

        string

        O texto ao redor do cursor. Esse é apenas um subconjunto de todo o texto no campo de entrada.