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
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 de assistência.
Enumeração
"undo"
"addToDictionary"
AssistiveWindowProperties
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
Tipo de janela assistiva.
Valor
"undo"
AutoCapitalizeType
O tipo de capitalização automática do campo de texto.
Enumeração
"characters"
"palavras"
"sentences"
InputContext
Descreve um contexto de entrada.
Propriedades
-
autoCapitalizeChrome 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 recenteSe 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
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
"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 recenteIndica 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 eventoonKeyEvent
. -
shiftKey
booleano opcional
Indica se a tecla SHIFT está pressionada.
-
tipo
Um de "keyup" ou "keydown".
KeyboardEventType
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
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
Propriedades
-
engineID
string
ID do mecanismo a ser usado.
-
itens
MenuItem[]
MenuItems a serem adicionados ou atualizados. Elas serão adicionadas na ordem em que aparecem na matriz.
MouseButton
Qual botão do mouse foi clicado.
Enumeração
"left"
"middle"
"direita"
ScreenType
O tipo de tela em que o IME é ativado.
Enumeração
"normal"
"login"
"lock"
"secondary-login"
UnderlineStyle
O tipo de sublinhado para modificar este segmento.
Enumeração
"sublinhado"
"doubleUnderline"
"noUnderline"
WindowPosition
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()
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()
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()
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()
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()
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.
-
buttonID
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()
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.
-
properties
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()
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()
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 recenteO í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 recenteO 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()
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
-
estilo
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()
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()
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()
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
-
engineID
string
-
Tela
-
onAssistiveWindowButtonClicked
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
-
detalhes
objeto
-
buttonID
O ID do botão clicado.
-
windowType
O tipo de janela assistiva.
-
-
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
-
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 escutando esse evento e ativadas 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 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
-
engineID
string
-
keyData
-
requestId
string
-
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 recenteA 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. Este é apenas um subconjunto de todo o texto no campo de entrada.
-
-