Descrição
Use a API chrome.input.ime para implementar um IME personalizado para o ChromeOS. Isso permite que a extensão processe as teclas digitadas, defina a composição e gerencie a janela de candidatos.
Permissões
inputÉ necessário 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;
browser.input.ime.onFocus.addListener(function(context) {
context_id = context.contextID;
});
browser.input.ime.onKeyEvent.addListener(
function(engineID, keyData) {
if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
browser.input.ime.commitText({"contextID": context_id,
"text": keyData.key.toUpperCase()});
return true;
} else {
return false;
}
}
);
Tipos
AssistiveWindowButton
ID dos botões na janela de acessibilidade.
Enumeração
"undo"
"addToDictionary"
AssistiveWindowProperties
Propriedades da janela de acessibilidade.
Propriedades
-
announceString
string opcional
Strings para o ChromeVox anunciar.
-
tipo
"undo"
-
visível
booleano
Define como verdadeiro para mostrar a AssistiveWindow e como falso para ocultar.
AssistiveWindowType
Tipo de janela de acessibilidade.
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+ browser.* desde o Chrome 148
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+ browser.* desde o Chrome 148Se 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 uma verificação ortográfica.
-
tipo
Tipo de valor que esse campo de texto edita (texto, número, URL etc.)
InputContextType
Tipo de valor que esse 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+ browser.* desde o Chrome 148Se a tecla ALTGR está pressionada ou não.
-
capsLock
booleano opcional
Se o 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 do teclado atual ou pelo estado do modificador.
-
ctrlKey
booleano opcional
Se a tecla CTRL está pressionada ou não.
-
extensionId
string opcional
O ID da extensão do remetente desse evento de tecla.
-
chave
string
Valor da tecla que está sendo pressionada
-
keyCode
número optional
O keyCode HTML descontinuado, que é um código numérico dependente do sistema e da implementação que representa 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
Se a tecla SHIFT está pressionada ou não.
-
tipo
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 precisa ser desenhado com uma marca de seleção.
-
ativado
booleano opcional
Indica que este 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 este 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"
"radio"
"separator"
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 aparecem na matriz.
MouseButton
Quais botões do mouse foram clicados.
Enumeração
"left"
"middle"
"right"
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
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
Onde mostrar a janela de candidatos. 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()
browser.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
Limpar a composição atual. Se essa 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+ browser.* desde o Chrome 148É resolvido quando a operação é concluída com um booleano que indica se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
commitText()
browser.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+ browser.* desde o Chrome 148É resolvido quando a operação é concluída com um booleano que indica se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
deleteSurroundingText()
browser.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
Exclui o texto ao redor do cursor de texto.
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 de texto em que a exclusão vai começar. Esse valor pode ser negativo.
-
Retorna
-
Promessa<void>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída.
hideInputView()
browser.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()
browser.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
Indica que o evento de tecla 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 deve vir de keyEvent.requestId
-
resposta
booleano
Verdadeiro se o pressionamento de tecla foi processado. Caso contrário, falso.
sendKeyEvents()
browser.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
Envia os eventos principais. Essa função deve ser usada por teclados virtuais. Quando uma ou mais teclas de um teclado virtual são pressionadas por um usuário, essa função é usada para propagar esse evento para o 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 para um campo que não seja de entrada.
-
keyData
Dados sobre o evento principal.
-
Retorna
-
Promessa<void>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída.
setAssistiveWindowButtonHighlighted()
browser.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 que possui a janela de assistência.
-
em destaque
booleano
Se o botão precisa ser destacado.
-
windowType
"undo"
O tipo de janela a que o botão pertence.
-
Retorna
-
Promessa<void>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída. Em caso de falha, a promessa será rejeitada.
setAssistiveWindowProperties()
browser.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
Mostra/oculta uma janela de assistência com as propriedades fornecidas.
Parâmetros
-
parâmetros
objeto
-
contextID
número
ID do contexto que possui a janela de assistência.
-
propriedades
Propriedades da janela de acessibilidade.
-
Retorna
-
Promise<boolean>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída.
setCandidates()
browser.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
Define a lista de candidatos atual. Isso vai 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 de candidatos
-
anotação
string opcional
Texto adicional que descreve 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 optional
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 de detalhes.
-
-
-
contextID
número
ID do contexto que possui a janela de candidatos.
-
Retorna
-
Promise<boolean>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída.
setCandidateWindowProperties()
browser.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
Define as propriedades da janela de candidatos. 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.
-
propriedades
objeto
-
auxiliaryText
string opcional
Texto mostrado na parte de baixo da janela de candidatos.
-
auxiliaryTextVisible
booleano opcional
"True" para mostrar o texto auxiliar, "false" para ocultá-lo.
-
currentCandidateIndex
número optional
Chrome 84+ browser.* desde o Chrome 148O índice do candidato escolhido no momento em relação ao total de candidatos.
-
cursorVisible
booleano opcional
Verdadeiro para mostrar o cursor, falso para ocultá-lo.
-
pageSize
número optional
O número de candidatos a serem exibidos por página.
-
totalCandidates
número optional
Chrome 84+ browser.* desde o Chrome 148O número total de candidatos para a janela de candidatos.
-
vertical
booleano opcional
Verdadeiro se a janela de candidatos precisar ser renderizada na vertical, falso para que seja horizontal.
-
visível
booleano opcional
Verdadeiro para mostrar a janela de candidatos, falso para ocultá-la.
-
windowPosition
WindowPosition opcional
Onde mostrar a janela de candidatos.
-
-
Retorna
-
Promise<boolean>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída.
setComposition()
browser.input.ime.setComposition(
parameters: object,
): Promise<boolean>
Defina a composição atual. Se essa 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 no texto do cursor.
-
segmentos
object[] optional
Lista de segmentos e os tipos associados.
-
end
número
Índice do caractere para encerrar este segmento.
-
start
número
Índice do caractere para iniciar este segmento
-
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 a ser definido
-
Retorna
-
Promise<boolean>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída com um booleano que indica se o texto foi aceito ou não. Em caso de falha, a promessa será rejeitada.
setCursorPosition()
browser.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
Defina a posição do cursor na janela de candidatos. Essa será uma operação sem efeito 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 que possui a janela de candidatos.
-
Retorna
-
Promise<boolean>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída
setMenuItems()
browser.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
Adiciona os itens de menu fornecidos ao menu de idiomas quando esse IME está ativo.
Parâmetros
-
parâmetros
Retorna
-
Promessa<void>
Chrome 111+ browser.* desde o Chrome 148
updateMenuItems()
browser.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Atualiza o estado dos MenuItems especificados.
Parâmetros
-
parâmetros
Retorna
-
Promessa<void>
Chrome 111+ browser.* desde o Chrome 148É resolvido quando a operação é concluída
Eventos
onActivate
browser.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é semelhante a:(engineID: string, screen: ScreenType) => void
-
engineID
string
-
Tela
-
onAssistiveWindowButtonClicked
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Este evento é enviado quando um botão em uma janela de assistência é clicado.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(details: object) => void
-
detalhes
objeto
-
buttonID
O ID do botão clicado.
-
windowType
O tipo da janela de acessibilidade.
-
-
onBlur
browser.input.ime.onBlur.addListener(
callback: function,
)
Este evento é enviado quando o foco sai de uma caixa de texto. Ele é enviado para todas as extensões que estão detectando esse evento e ativadas pelo usuário.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(contextID: number) => void
-
contextID
número
-
onCandidateClicked
browser.input.ime.onCandidateClicked.addListener(
callback: function,
)
Esse evento será enviado se a extensão for proprietária do IME ativo.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
string
-
candidateID
número
-
botão
-
onDeactivated
browser.input.ime.onDeactivated.addListener(
callback: function,
)
Esse evento é enviado quando um IME é desativado. Isso indica que o IME não vai mais receber eventos onKeyPress.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(engineID: string) => void
-
engineID
string
-
onFocus
browser.input.ime.onFocus.addListener(
callback: function,
)
Esse evento é enviado quando o foco entra em uma caixa de texto. Ele é enviado para todas as extensões que estão detectando esse evento e que foram ativadas pelo usuário.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(context: InputContext) => void
-
contexto
-
onInputContextUpdate
browser.input.ime.onInputContextUpdate.addListener(
callback: function,
)
Esse evento é enviado quando as propriedades do InputContext atual mudam, como o tipo. Ele é enviado para todas as extensões que estão detectando esse evento e ativadas pelo usuário.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(context: InputContext) => void
-
contexto
-
onKeyEvent
browser.input.ime.onKeyEvent.addListener(
callback: function,
)
Acionado quando um evento principal é enviado pelo sistema operacional. O evento será enviado à 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 indefinido, e o IME precisará chamar keyEventHandled() com o resultado.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
string
-
keyData
-
requestId
string
-
retorna
boolean | undefined
-
onMenuItemActivated
browser.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é semelhante a:(engineID: string, name: string) => void
-
engineID
string
-
nome
string
-
onReset
browser.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é semelhante a:(engineID: string) => void
-
engineID
string
-
onSurroundingTextChanged
browser.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Chamado quando a string editável ao redor do cursor de texto é alterada ou quando a posição do cursor de texto é movida. O tamanho do texto é limitado a 100 caracteres para cada direção de ida e volta.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(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 de texto se não houver seleção.
-
foco
número
A posição final da seleção. Esse valor indica a posição do cursor de texto se não houver seleção.
-
offset
número
Chrome 46+ browser.* desde o Chrome 148A 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. Esse é apenas um subconjunto de todo o texto no campo de entrada.
-
-