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

Você precisa declarar a permissão "input" no manifesto da extensão para usar a API input.ime. Por exemplo:

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

Disponibilidade

Somente no 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 mais recente

ID dos botões na janela de assistência.

Enumeração

"undo"

"addToDictionary"

AssistiveWindowProperties

Chrome 85 ou mais recente

Propriedades da janela de assistência.

Propriedades

  • announceString

    string opcional

    Strings para o ChromeVox anunciar.

  • tipo

    "undo"

  • visível

    booleano

    Define como "true" para mostrar AssistiveWindow e "false" para ocultar.

AssistiveWindowType

Chrome 85 ou mais recente

Tipo de janela assistiva.

Valor

"undo"

AutoCapitalizeType

Chrome 69 ou mais recente

O tipo de capitalização automática do campo de texto.

Enumeração

"characters"

"palavras"

"sentences"

InputContext

Descreve um contexto de entrada.

Propriedades

  • autoCapitalize
    Chrome 69 ou mais recente

    O tipo de capitalização automática do campo de texto.

  • autoComplete

    booleano

    Se o campo de texto quer preenchimento automático.

  • autoCorrect

    booleano

    Se o campo de texto quer autocorreção.

  • contextID

    número

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

  • shouldDoLearning

    booleano

    Chrome 68 ou mais recente

    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

    Se o campo de texto quer verificação ortográfica.

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

InputContextType

Chrome 44 ou mais recente

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

Enumeração

"text"

"search"

"tel"

"url"

"email"

"number"

"password"

"null"

KeyboardEvent

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

Propriedades

  • altKey

    booleano opcional

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

  • altgrKey

    booleano opcional

    Chrome 79 ou mais recente

    Indica se a tecla ALTGR está pressionada ou não.

  • capsLock

    booleano opcional

    Indica se a tecla CAPS LOCK está ativada.

  • código

    string

    Valor da tecla física pressionada. O valor não é afetado pelo layout do teclado ou pelo estado do modificador atual.

  • ctrlKey

    booleano opcional

    Indica se a tecla CTRL está pressionada ou não.

  • extensionId

    string opcional

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

  • chave

    string

    Valor da tecla pressionada.

  • keyCode

    number optional

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

  • requestId

    string opcional

    (Descontinuado) O ID da solicitação. Em vez disso, use o parâmetro requestId do evento onKeyEvent.

  • shiftKey

    booleano opcional

    Indica se a tecla SHIFT está pressionada.

  • Um de "keyup" ou "keydown".

KeyboardEventType

Chrome 44 ou mais recente

Enumeração

"keyup"

"keydown"

MenuItem

Um 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 este MenuItem.

  • o rótulo.

    string opcional

    Texto exibido no menu para este item.

  • estilo

    MenuItemStyle opcional

    O tipo de item de menu.

  • visível

    booleano opcional

    Indica que o item está visível.

MenuItemStyle

Chrome 44 ou mais recente

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

Enumeração

"check"

"rádio"

"separator"

MenuParameters

Chrome 88 ou mais recente

Propriedades

  • engineID

    string

    ID do mecanismo a ser usado.

  • itens

    MenuItems a serem adicionados ou atualizados. Elas serão adicionadas na ordem em que aparecem na matriz.

MouseButton

Chrome 44 ou mais recente

Qual botão do mouse foi clicado.

Enumeração

"left"

"middle"

"direita"

ScreenType

Chrome 44 ou mais recente

O tipo de tela em que o IME é ativado.

Enumeração

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Chrome 44 ou mais recente

O tipo de sublinhado para modificar este segmento.

Enumeração

"sublinhado"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 ou mais recente

Onde a janela de candidatos será exibida. Se definido como "cursor", a janela segue o cursor. Se definido como "composition", a janela será bloqueada no início da composição.

Enumeração

"cursor"

"composição"

Métodos

clearComposition()

Promise
chrome.input.ime.clearComposition(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Limpa a composição atual. Se a extensão não for proprietária do IME ativo, isso vai falhar.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

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

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou mais recente

commitText()

Promise
chrome.input.ime.commitText(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Confirma o texto fornecido na entrada atual.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

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

deleteSurroundingText()

Promise
chrome.input.ime.deleteSurroundingText(
  parameters: object,
  callback?: function,
)
: Promise<void>

Exclui o texto ao redor do cursor.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

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

    • engineID

      string

      ID do mecanismo que recebe o evento.

    • comprimento

      número

      O número de caracteres a serem excluídos

    • offset

      número

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

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promise<void>

    Chrome 111 ou mais recente

hideInputView()

chrome.input.ime.hideInputView(): void

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 fará nada.

keyEventHandled()

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

Indica que o evento principal recebido por onKeyEvent foi processado. Isso só deve ser chamado se o listener onKeyEvent for assíncrono.

Parâmetros

  • requestId

    string

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

  • resposta

    booleano

    Verdadeiro se a ação de pressionar a tecla foi processada. Falso, caso contrário.

sendKeyEvents()

Promise
chrome.input.ime.sendKeyEvents(
  parameters: object,
  callback?: function,
)
: Promise<void>

Envia os eventos principais. Essa função deve ser usada por teclados virtuais. Quando um usuário pressiona uma ou mais teclas em um teclado virtual, essa função é usada para propagar o evento ao sistema.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

      ID do contexto em que os eventos principais serão 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

  • Promise<void>

    Chrome 111 ou mais recente

setAssistiveWindowButtonHighlighted()

Promise Chrome 86 ou mais recente
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)
: Promise<void>

Destaca/remove o destaque de um botão em uma janela de assistência.

Parâmetros

  • parâmetros

    objeto

    • announceString

      string opcional

      O texto que o leitor de tela vai anunciar.

    • O ID do botão

    • contextID

      número

      ID do contexto proprietário da janela de assistência.

    • em destaque

      booleano

      Se o botão deve ser destacado.

    • windowType

      "undo"

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

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promise<void>

    Chrome 111 ou mais recente

setAssistiveWindowProperties()

Promise Chrome 85 ou mais recente
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Mostra/oculta uma janela de assistência com as propriedades especificadas.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

      ID do contexto proprietário da janela de assistência.

    • Propriedades da janela de assistência.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou mais recente

setCandidates()

Promise
chrome.input.ime.setCandidates(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Define a lista de candidatos atual. Isso falha 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 de candidatos

      • anotação

        string opcional

        Texto adicional descrevendo o candidato

      • candidato

        string

        O candidato

      • ID

        número

        O ID do candidato

      • o rótulo.

        string opcional

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

      • parentId

        number optional

        O ID para 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 detalhada.

        • título

          string

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

    • contextID

      número

      ID do contexto proprietário da janela de candidatos.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou mais recente

setCandidateWindowProperties()

Promise
chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Define as propriedades da janela de candidatos. Isso falha 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

        True para mostrar o texto auxiliar e false para ocultá-lo.

      • currentCandidateIndex

        number optional

        Chrome 84 ou mais recente

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

      • cursorVisible

        booleano opcional

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

      • pageSize

        number optional

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

      • totalCandidates

        number optional

        Chrome 84 ou mais recente

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

      • vertical

        booleano opcional

        True se a janela de candidatos precisar ser renderizada verticalmente. False para horizontal.

      • visível

        booleano opcional

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

      • windowPosition

        WindowPosition opcional

        Onde a janela de candidatos será exibida.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou mais recente

setComposition()

Promise
chrome.input.ime.setComposition(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Define a composição atual. Se a extensão não for proprietária do IME ativo, isso vai falhar.

Parâmetros

  • parâmetros

    objeto

    • contextID

      número

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

    • cursor

      número

      Posição do cursor no texto.

    • segmentos

      object[] optional

      Lista de segmentos e os tipos associados.

      • end

        número

        Índice do caractere após o qual este segmento vai terminar.

      • start

        número

        Índice do caractere em que este segmento começa

      • O tipo de sublinhado para modificar este segmento.

    • selectionEnd

      number optional

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

    • selectionStart

      number optional

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

    Chrome 111 ou mais recente

setCursorPosition()

Promise
chrome.input.ime.setCursorPosition(
  parameters: object,
  callback?: function,
)
: Promise<boolean>

Define a posição do cursor na janela de candidatos. Não faz nada se a extensão não for proprietária do IME ativo.

Parâmetros

  • parâmetros

    objeto

    • candidateID

      número

      ID do candidato a ser selecionado.

    • contextID

      número

      ID do contexto proprietário da janela de candidatos.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (success: boolean) => void

    • sucesso

      booleano

Retorna

  • Promise<boolean>

    Chrome 111 ou mais recente

setMenuItems()

Promise
chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
  callback?: function,
)
: Promise<void>

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

  • Promise<void>

    Chrome 111 ou mais recente

updateMenuItems()

Promise
chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
  callback?: function,
)
: Promise<void>

Atualiza o estado dos MenuItems especificados

Parâmetros

  • parâmetros
  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promise<void>

    Chrome 111 ou mais recente

Eventos

onActivate

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

Esse evento é enviado quando um IME é ativado. Ele indica que o IME vai 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 mais recente
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

Esse evento é enviado quando um botão em uma janela de assistência é 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,
)

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

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (contextID: number) => void

    • contextID

      número

onCandidateClicked

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

Esse evento é enviado se a 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

      número

    • botão

onDeactivated

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

Esse evento é enviado quando um IME é desativado. Ele indica que o IME não vai mais receber 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 escutando esse evento e ativadas 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 escutando esse evento e ativadas pelo usuário.

Parâmetros

onKeyEvent

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

Disparado quando um evento de tecla é enviado pelo sistema operacional. O evento será enviado para a extensão se ela for proprietária do IME ativo. A função de listener precisa retornar "true" se o evento foi processado e "false" se não foi. Se o evento for avaliado de forma assíncrona, essa função precisará retornar "undefined", e o IME precisará chamar keyEventHandled() mais tarde 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 | undefined

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

Esse evento é enviado quando o Chrome encerra uma 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 comprimento do texto é limitado a 100 caracteres para cada direção de conversa.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

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

    • engineID

      string

    • surroundingInfo

      objeto

      • âncora

        número

        A posição inicial da seleção. Esse valor indica a posição do cursor se não houver uma seleção.

      • foco

        número

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

      • offset

        número

        Chrome 46 ou mais recente

        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. Este é apenas um subconjunto de todo o texto no campo de entrada.