Descrizione
Utilizza l'API chrome.input.ime per implementare un IME personalizzato per ChromeOS. In questo modo, l'estensione può gestire le pressioni dei tasti, impostare la composizione e gestire la finestra dei candidati.
Autorizzazioni
inputPer utilizzare l'API input.ime, devi dichiarare l'autorizzazione "input" nel manifest dell'estensione. Ad esempio:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Disponibilità
Esempi
Il codice seguente crea un IME che converte le lettere digitate in lettere maiuscole.
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;
}
}
);
Tipi
AssistiveWindowButton
ID dei pulsanti nella finestra di assistenza.
Enum
"undo"
"addToDictionary"
AssistiveWindowProperties
Proprietà della finestra di assistenza.
Proprietà
-
announceString
stringa facoltativa
Stringhe che ChromeVox deve annunciare.
-
tipo
"undo"
-
visibile
booleano
Imposta su true per mostrare AssistiveWindow, su false per nasconderla.
AssistiveWindowType
Tipo di finestra di assistenza.
Valore
"undo"
AutoCapitalizeType
Il tipo di maiuscole automatiche del campo di testo.
Enum
"characters"
"words"
"sentences"
InputContext
Descrive un contesto di input
Proprietà
-
autoCapitalizeChrome 69 e versioni successive browser.* da Chrome 148
Il tipo di maiuscole automatiche del campo di testo.
-
autoComplete
booleano
Indica se il campo di testo richiede il completamento automatico.
-
autoCorrect
booleano
Indica se il campo di testo richiede la correzione automatica.
-
contextID
numero
Viene utilizzato per specificare i target delle operazioni sui campi di testo. Questo ID non è più valido non appena viene chiamato onBlur.
-
shouldDoLearning
booleano
Browser Chrome 68 e versioni successive * a partire da Chrome 148Se il testo inserito nel campo di testo deve essere utilizzato per migliorare i suggerimenti di digitazione per l'utente.
-
spellCheck
booleano
Indica se il campo di testo richiede il controllo ortografico.
-
tipo
Tipo di valore modificato da questo campo di testo (testo, numero, URL e così via)
InputContextType
Tipo di valore modificato da questo campo di testo (testo, numero, URL e così via)
Enum
"text"
"search"
"tel"
"url"
"email"
"number"
"password"
"null"
KeyboardEvent
Consulta http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
Proprietà
-
altKey
boolean facoltativo
Indica se il tasto ALT è premuto o meno.
-
altgrKey
boolean facoltativo
Chrome 79 e versioni successive browser.* da Chrome 148Indica se il tasto ALTGR è premuto o meno.
-
capsLock
boolean facoltativo
Indica se il tasto BLOC MAIUSC è attivo.
-
codice
stringa
Valore del tasto fisico premuto. Il valore non è influenzato dal layout della tastiera corrente o dallo stato del modificatore.
-
ctrlKey
boolean facoltativo
Indica se il tasto CTRL è premuto o meno.
-
extensionId
stringa facoltativa
L'ID estensione del mittente di questo evento chiave.
-
chiave
stringa
Valore del tasto premuto
-
keyCode
number optional
Il keyCode HTML deprecato, ovvero un codice numerico che dipende dal sistema e dall'implementazione e che indica l'identificatore non modificato associato al tasto premuto.
-
requestId
stringa facoltativa
(Deprecato) L'ID della richiesta. Utilizza invece il parametro
requestIddell'eventoonKeyEvent. -
shiftKey
boolean facoltativo
Indica se il tasto MAIUSC è premuto o meno.
-
tipo
Uno tra keyup o keydown.
KeyboardEventType
Enum
"keyup"
"keydown"
MenuItem
Una voce di menu utilizzata da un metodo di immissione per interagire con l'utente dal menu della lingua.
Proprietà
-
selezionato
boolean facoltativo
Indica che questo elemento deve essere disegnato con un segno di spunta.
-
attivato
boolean facoltativo
Indica che questo elemento è attivo.
-
id
stringa
Stringa che verrà passata ai callback che fanno riferimento a questo MenuItem.
-
etichetta
stringa facoltativa
Testo visualizzato nel menu per questo elemento.
-
stile
MenuItemStyle facoltativo
Il tipo di voce di menu.
-
visibile
boolean facoltativo
Indica che questo elemento è visibile.
MenuItemStyle
Il tipo di voce di menu. I pulsanti di opzione tra i separatori sono considerati raggruppati.
Enum
"check"
"radio"
"separator"
MenuParameters
Proprietà
-
engineID
stringa
ID del motore da utilizzare.
-
elementi
MenuItem[]
MenuItems da aggiungere o aggiornare. Verranno aggiunti nell'ordine in cui si trovano nell'array.
MouseButton
Quale pulsante del mouse è stato premuto.
Enum
"left"
"middle"
"right"
ScreenType
Il tipo di schermo in cui è attivato l'IME.
Enum
"normal"
"login"
"lock"
"secondary-login"
UnderlineStyle
Il tipo di sottolineatura per modificare questo segmento.
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
Dove visualizzare la finestra dei candidati. Se impostata su "cursor", la finestra segue il cursore. Se impostato su "composition", la finestra è bloccata all'inizio della composizione.
Enum
"cursor"
"composition"
Metodi
clearComposition()
browser.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
Cancella la composizione corrente. Se questa estensione non possiede l'IME attivo, l'operazione non va a buon fine.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verrà cancellata la composizione
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Si risolve quando l'operazione viene completata con un valore booleano che indica se il testo è stato accettato o meno. In caso di errore, la promessa verrà rifiutata.
commitText()
browser.input.ime.commitText(
parameters: object,
): Promise<boolean>
Esegue il commit del testo fornito nell'input corrente.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verrà eseguito il commit del testo
-
testo
stringa
Il testo di cui eseguire il commit
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Si risolve quando l'operazione viene completata con un valore booleano che indica se il testo è stato accettato o meno. In caso di errore, la promessa verrà rifiutata.
deleteSurroundingText()
browser.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
Elimina il testo intorno al cursore del testo.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verrà eliminato il testo circostante.
-
engineID
stringa
ID del motore che riceve l'evento.
-
lunghezza
numero
Il numero di caratteri da eliminare
-
offset
numero
L'offset dalla posizione del cursore del testo in cui inizierà l'eliminazione. Questo valore può essere negativo.
-
Resi
-
Promise<void>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione.
hideInputView()
browser.input.ime.hideInputView(): void
Nasconde la finestra di visualizzazione dell'input, che viene visualizzata automaticamente dal sistema. Se la finestra di visualizzazione dell'input è già nascosta, questa funzione non farà nulla.
keyEventHandled()
browser.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
Indica che l'evento chiave ricevuto da onKeyEvent è stato gestito. Questo metodo deve essere chiamato solo se il listener onKeyEvent è asincrono.
Parametri
-
requestId
stringa
ID richiesta dell'evento gestito. Questo valore deve provenire da keyEvent.requestId
-
risposta
booleano
True se la pressione del tasto è stata gestita, false in caso contrario
sendKeyEvents()
browser.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
Invia gli eventi chiave. Questa funzione deve essere utilizzata dalle tastiere virtuali. Quando un utente preme uno o più tasti su una tastiera virtuale, questa funzione viene utilizzata per propagare l'evento al sistema.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verranno inviati gli eventi chiave o zero per inviare gli eventi chiave a un campo non di immissione.
-
keyData
Dati sull'evento chiave.
-
Resi
-
Promise<void>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione.
setAssistiveWindowButtonHighlighted()
browser.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
Evidenzia/rimuove l'evidenziazione di un pulsante in una finestra di assistenza.
Parametri
-
Parametri
oggetto
-
announceString
stringa facoltativa
Il testo che lo screen reader deve annunciare.
-
buttonID
L'ID del pulsante
-
contextID
numero
ID del contesto proprietario della finestra di assistenza.
-
in evidenza
booleano
Indica se il pulsante deve essere evidenziato.
-
windowType
"undo"
Il tipo di finestra a cui appartiene il pulsante.
-
Resi
-
Promise<void>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione. In caso di errore, la promessa verrà rifiutata.
setAssistiveWindowProperties()
browser.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
Mostra/nasconde una finestra di assistenza con le proprietà specificate.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto proprietario della finestra di assistenza.
-
proprietà
Proprietà della finestra di assistenza.
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione.
setCandidates()
browser.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
Imposta l'elenco dei candidati corrente. Questa operazione non va a buon fine se questa estensione non è proprietaria dell'IME attivo
Parametri
-
Parametri
oggetto
-
candidati
object[]
Elenco dei candidati da mostrare nella finestra dei candidati
-
annotazione
stringa facoltativa
Testo aggiuntivo che descrive il candidato
-
candidato
stringa
Il candidato
-
id
numero
L'ID del candidato
-
etichetta
stringa facoltativa
Breve stringa visualizzata accanto al candidato, spesso il tasto di scelta rapida o l'indice
-
parentId
number optional
L'ID a cui aggiungere questi candidati
-
utilizzo
object facoltativo
L'utilizzo o la descrizione dettagliata della parola.
-
corpo
stringa
La stringa del corpo della descrizione dettagliata.
-
titolo
stringa
La stringa del titolo della descrizione dei dettagli.
-
-
-
contextID
numero
ID del contesto proprietario della finestra dei candidati.
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione.
setCandidateWindowProperties()
browser.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
Imposta le proprietà della finestra dei candidati. Questa operazione non va a buon fine se l'estensione non è proprietaria dell'IME attivo
Parametri
-
Parametri
oggetto
-
engineID
stringa
ID del motore su cui impostare le proprietà.
-
proprietà
oggetto
-
auxiliaryText
stringa facoltativa
Testo visualizzato nella parte inferiore della finestra dei candidati.
-
auxiliaryTextVisible
boolean facoltativo
True per visualizzare il testo ausiliario, false per nasconderlo.
-
currentCandidateIndex
number optional
Chrome 84+ browser.* da Chrome 148L'indice del candidato attualmente scelto rispetto al totale dei candidati.
-
cursorVisible
boolean facoltativo
True per mostrare il cursore, false per nasconderlo.
-
pageSize
number optional
Il numero di candidati da visualizzare per pagina.
-
totalCandidates
number optional
Chrome 84+ browser.* da Chrome 148Il numero totale di candidati per la finestra dei candidati.
-
verticale
boolean facoltativo
True se la finestra dei candidati deve essere visualizzata in verticale, false per visualizzarla in orizzontale.
-
visibile
boolean facoltativo
"True" per mostrare la finestra dei candidati, "false" per nasconderla.
-
windowPosition
WindowPosition facoltativo
Dove visualizzare la finestra dei candidati.
-
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolta al completamento dell'operazione.
setComposition()
browser.input.ime.setComposition(
parameters: object,
): Promise<boolean>
Imposta la composizione corrente. Se questa estensione non possiede l'IME attivo, l'operazione non va a buon fine.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verrà impostato il testo della composizione
-
cursore
numero
Posizione del cursore nel testo.
-
segmenti simili
object[] facoltativo
Elenco dei segmenti e dei relativi tipi associati.
-
termina
numero
Indice del carattere dopo il quale termina questo segmento.
-
start
numero
Indice del carattere da cui iniziare questo segmento
-
stile
Il tipo di sottolineatura per modificare questo segmento.
-
-
selectionEnd
number optional
Posizione nel testo in cui termina la selezione.
-
selectionStart
number optional
Posizione nel testo in cui inizia la selezione.
-
testo
stringa
Testo da impostare
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Si risolve quando l'operazione viene completata con un valore booleano che indica se il testo è stato accettato o meno. In caso di errore, la promessa verrà rifiutata.
setCursorPosition()
browser.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
Imposta la posizione del cursore nella finestra dei candidati. Questa operazione non ha effetto se questa estensione non possiede l'IME attivo.
Parametri
-
Parametri
oggetto
-
candidateID
numero
ID del candidato da selezionare.
-
contextID
numero
ID del contesto proprietario della finestra dei candidati.
-
Resi
-
Promise<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolto al completamento dell'operazione
setMenuItems()
browser.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
Aggiunge le voci di menu fornite al menu della lingua quando questo IME è attivo.
Parametri
-
Parametri
Resi
-
Promise<void>
Chrome 111 e versioni successive browser.* da Chrome 148
updateMenuItems()
browser.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Aggiorna lo stato dei MenuItems specificati
Parametri
-
Parametri
Resi
-
Promise<void>
Chrome 111 e versioni successive browser.* da Chrome 148Viene risolto al completamento dell'operazione
Eventi
onActivate
browser.input.ime.onActivate.addListener(
callback: function,
)
Questo evento viene inviato quando viene attivato un IME. Indica che l'IME riceverà eventi onKeyPress.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string, screen: ScreenType) => void
-
engineID
stringa
-
schermo
-
onAssistiveWindowButtonClicked
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Questo evento viene inviato quando si fa clic su un pulsante in una finestra di assistenza.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(details: object) => void
-
dettagli
oggetto
-
buttonID
L'ID del pulsante su cui è stato fatto clic.
-
windowType
Il tipo di finestra di assistenza.
-
-
onBlur
browser.input.ime.onBlur.addListener(
callback: function,
)
Questo evento viene inviato quando lo stato attivo lascia una casella di testo. Viene inviato a tutte le estensioni che sono in ascolto di questo evento e attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(contextID: number) => void
-
contextID
numero
-
onCandidateClicked
browser.input.ime.onCandidateClicked.addListener(
callback: function,
)
Questo evento viene inviato se questa estensione possiede l'IME attivo.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
stringa
-
candidateID
numero
-
pulsante
-
onDeactivated
browser.input.ime.onDeactivated.addListener(
callback: function,
)
Questo evento viene inviato quando un IME viene disattivato. Segnala che l'IME non riceverà più eventi onKeyPress.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string) => void
-
engineID
stringa
-
onFocus
browser.input.ime.onFocus.addListener(
callback: function,
)
Questo evento viene inviato quando lo stato attivo entra in una casella di testo. Viene inviato a tutte le estensioni che sono in ascolto di questo evento e attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(context: InputContext) => void
-
context
-
onInputContextUpdate
browser.input.ime.onInputContextUpdate.addListener(
callback: function,
)
Questo evento viene inviato quando cambiano le proprietà dell'InputContext corrente, ad esempio il tipo. Viene inviato a tutte le estensioni che sono in ascolto di questo evento e attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(context: InputContext) => void
-
context
-
onKeyEvent
browser.input.ime.onKeyEvent.addListener(
callback: function,
)
Attivato quando un evento chiave viene inviato dal sistema operativo. L'evento verrà inviato all'estensione se questa possiede l'IME attivo. La funzione listener deve restituire true se l'evento è stato gestito, false in caso contrario. Se l'evento viene valutato in modo asincrono, questa funzione deve restituire undefined e l'IME deve chiamare keyEventHandled() in un secondo momento con il risultato.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
stringa
-
keyData
-
requestId
stringa
-
returns
boolean | undefined
-
onMenuItemActivated
browser.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Chiamato quando l'utente seleziona una voce di menu
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string, name: string) => void
-
engineID
stringa
-
nome
stringa
-
onReset
browser.input.ime.onReset.addListener(
callback: function,
)
Questo evento viene inviato quando Chrome termina la sessione di inserimento di testo in corso.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string) => void
-
engineID
stringa
-
onSurroundingTextChanged
browser.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Viene chiamato quando la stringa modificabile intorno al cursore del testo viene modificata o quando la posizione del cursore del testo viene spostata. La lunghezza del testo è limitata a 100 caratteri per ogni direzione di andata e ritorno.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(engineID: string, surroundingInfo: object) => void
-
engineID
stringa
-
surroundingInfo
oggetto
-
anchor
numero
La posizione iniziale della selezione. Questo valore indica la posizione del cursore del testo se non è presente alcuna selezione.
-
messa a fuoco
numero
La posizione finale della selezione. Questo valore indica la posizione del cursore del testo se non è presente alcuna selezione.
-
offset
numero
Chrome 46 e versioni successive browser.* da Chrome 148La posizione di offset di
text. Poichétextinclude solo un sottoinsieme di testo attorno al cursore, l'offset indica la posizione assoluta del primo carattere ditext. -
testo
stringa
Il testo intorno al cursore. Questo è solo un sottoinsieme di tutto il testo nel campo di immissione.
-
-