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
inputVocê 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 correção automática.
-
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.
-
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
número 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. Use o parâmetro
requestIddo 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
-
checked
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 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
Quais botões do mouse foram clicados.
Enumeração
"esquerda"
"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,
): 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
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída com um booleano indicando se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
commitText()
chrome.input.ime.commitText(
parameters: object,
): 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
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída com um booleano indicando se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
): 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.
-
Retorna
-
Promessa<void>
Chrome 111+É resolvida quando a operação é concluída.
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 tecla foi processada. Falso, caso contrário.
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
): 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.
-
Retorna
-
Promessa<void>
Chrome 111+É resolvida quando a operação é concluída.
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
Destaca/remove o destaque de um botão em uma janela de acessibilidade.
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.
-
Retorna
-
Promessa<void>
Chrome 111+É resolvida quando a operação é concluída. Em caso de falha, a promessa será rejeitada.
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
): 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
Propriedades da janela de assistência.
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída.
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
): 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
número 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.
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída.
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
): 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.
-
propriedades
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
número 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
número optional
O número de candidatos a serem exibidos por página.
-
totalCandidates
número 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.
-
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída.
setComposition()
chrome.input.ime.setComposition(
parameters: object,
): 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
número optional
Posição no texto em que a seleção termina.
-
selectionStart
número optional
Posição no texto em que a seleção começa.
-
texto
string
Texto para definir
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída com um booleano indicando se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
): 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.
-
Retorna
-
Promise<boolean>
Chrome 111+É resolvida quando a operação é concluída.
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
Adiciona os itens de menu fornecidos ao menu de idiomas quando este IME está ativo.
Parâmetros
-
parâmetros
Retorna
-
Promessa<void>
Chrome 111+
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Atualiza o estado dos MenuItems especificados
Parâmetros
-
parâmetros
Retorna
-
Promessa<void>
Chrome 111+É resolvida quando a operação é concluída.
Eventos
onActivate
chrome.input.ime.onActivate.addListener(
callback: function,
)
Esse evento é enviado quando um IME é ativado. Isso indica que o IME vai receber eventos onKeyPress.
Parâmetros
-
callback
função
O parâmetro
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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
callbacktem 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 seleção.
-
foco
número
A posição final da seleção. Esse valor indica a posição do cursor se não houver seleção.
-
offset
número
Chrome 46 ou mais recenteA posição de deslocamento de
text. Comotextinclui 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.
-
-