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
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
ID dos botões na janela assistiva.
Enumeração
"desfazer"
"addToDictionary"
AssistiveWindowProperties
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
Tipo de janela assistiva.
Valor
"desfazer"
AutoCapitalizeType
O tipo de letras maiúsculas automaticamente do campo de texto.
Enumeração
"caracteres"
"palavras"
"frases"
InputContext
Descreve um contexto de entrada
Propriedades
-
autoCapitalizeChrome 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 superiorDefine 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
Tipo de valor que este campo de texto edita (texto, número, URL etc.)
InputContextType
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 superiorSe 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 eventoonKeyEvent
. -
shiftKey
booleano opcional
Se a tecla SHIFT está ou não pressionada.
-
tipo
Um keyup ou keydown.
KeyboardEventType
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
Tipo de item de menu. Os botões de opção entre separadores são considerados agrupados.
Enumeração
"marcar"
"rádio"
"separador"
MenuParameters
Propriedades
-
engineID
string
ID do mecanismo a ser usado.
-
itens
MenuItem[]
MenuItems para adicionar ou atualizar. Eles serão adicionados na ordem em que estiverem na matriz.
MouseButton
Quais botões do mouse foram clicados.
Enumeração
"esquerda"
"meio"
"direita"
ScreenType
O tipo de tela em que o IME é ativado.
Enumeração
"normal"
"fazer login"
"bloquear"
"secundário-login"
UnderlineStyle
O tipo de sublinhado para modificar este segmento.
Enumeração
"sublinhado"
"doubleunderline"
"nounderline"
WindowPosition
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()
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 recentesO 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()
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 recentesO 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()
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 recentesO 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()
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 recentesO 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()
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.
-
buttonID
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 recentesO 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()
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.
-
properties
Propriedades da janela assistiva.
-
-
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 recentesO 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()
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<boolean>
Chrome 111 ou versões mais recentesO 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()
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 superiorO í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 superiorO 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<boolean>
Chrome 111 ou versões mais recentesO 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()
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
-
estilo
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<boolean>
Chrome 111 ou versões mais recentesO 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()
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<boolean>
Chrome 111 ou versões mais recentesO 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()
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 recentesO 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()
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 recentesO 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
-
engineID
string
-
Tela
-
onAssistiveWindowButtonClicked
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
-
detalhes
objeto
-
buttonID
O ID do botão clicado.
-
windowType
O tipo de janela assistiva.
-
-
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
-
callback
função
O parâmetro
callback
tem esta aparência:(context: InputContext) => void
-
contexto
-
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
-
callback
função
O parâmetro
callback
tem esta aparência:(context: InputContext) => void
-
contexto
-
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
-
engineID
string
-
keyData
-
requestId
string
-
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 superiorA posição de deslocamento de
text
. Comotext
inclui apenas um subconjunto de texto ao redor do cursor, o deslocamento indica a posição absoluta do primeiro caractere detext
. -
texto
string
O texto ao redor do cursor. Esse é apenas um subconjunto de todo o texto no campo de entrada.
-
-