Descrizione
Utilizza l'API chrome.input.ime
per implementare un IME personalizzato per ChromeOS. In questo modo, l'estensione può gestire le sequenze di tasti, impostare la composizione e gestire la finestra dei candidati.
Autorizzazioni
input
Per utilizzare l'API input.ime, devi dichiarare l'autorizzazione "input" nel manifest dell'estensione. Ad esempio:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Disponibilità
Esempi
Il seguente codice crea un IME che converte le lettere digitate in maiuscolo.
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;
}
}
);
Tipi
AssistiveWindowButton
ID dei pulsanti nella finestra di assistenza.
Enum
"annulla"
"addToDictionary"
AssistiveWindowProperties
Proprietà della finestra di assistenza.
Proprietà
-
announceString
stringa facoltativa
Stringhe che ChromeVox deve annunciare.
-
tipo
"annulla"
-
visibile
booleano
Imposta true per mostrare AssistiveWindow e false per nasconderla.
AssistiveWindowType
Tipo di finestra assistiva.
Valore
"annulla"
AutoCapitalizeType
Il tipo di maiuscole automatiche del campo di testo.
Enum
"characters"
"parole"
"frasi"
InputContext
Descrive un contesto di input
Proprietà
-
autoCapitalizeChrome 69+
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
Chrome 68+Indica se il testo inserito nel campo di testo deve essere utilizzato per migliorare i suggerimenti di digitazione per l'utente.
-
spellCheck
booleano
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 la pagina http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
Proprietà
-
altKey
booleano facoltativo
Indica se il tasto ALT è premuto o meno.
-
altgrKey
booleano facoltativo
Chrome 79+Indica se il tasto ALTGR è premuto o meno.
-
capsLock
booleano facoltativo
Indica se BLOC MAIUSC è attivo o meno.
-
codice
stringa
Valore del tasto fisico premuto. Il valore non è influenzato dal layout della tastiera corrente o dallo stato del tasto modificatore.
-
ctrlKey
booleano 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 (facoltativo)
Il keyCode HTML ritirato, ovvero il codice numerico dipendente dal sistema e dall'implementazione che indica l'identificatore non modificato associato al tasto premuto.
-
requestId
stringa facoltativa
(Deprecato) L'ID della richiesta. Utilizza invece il parametro
requestId
dell'eventoonKeyEvent
. -
shiftKey
booleano 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 input per interagire con l'utente dal menu della lingua.
Proprietà
-
selezionato
booleano facoltativo
Indica che questo elemento deve essere disegnato con un segno di spunta.
-
attivato
booleano facoltativo
Indica che questo elemento è abilitato.
-
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
booleano 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 sono presenti nell'array.
MouseButton
Quali tasti del mouse sono stati premuti.
Enum
"sinistra"
"middle"
"destra"
ScreenType
Il tipo di schermo in cui viene 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 è impostato su "cursore", la finestra segue il cursore. Se impostato su "composizione", la finestra è bloccata all'inizio della composizione.
Enum
"cursor"
"composition"
Metodi
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
Cancella la composizione attuale. Se questa estensione non è proprietaria dell'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+
commitText()
chrome.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 da inviare
-
Resi
-
Promise<boolean>
Chrome 111+
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
Elimina il testo intorno al cursore.
Parametri
-
Parametri
oggetto
-
contextID
numero
ID del contesto in cui verrà eliminato il testo circostante.
-
engineID
stringa
L'ID del motore che riceve l'evento.
-
lunghezza
numero
Il numero di caratteri da eliminare
-
offset
numero
L'offset dalla posizione del cursore in cui inizierà l'eliminazione. Questo valore può essere negativo.
-
Resi
-
Promise<void>
Chrome 111+
hideInputView()
chrome.input.ime.hideInputView(): void
Nasconde la finestra della visualizzazione input, visualizzata automaticamente dal sistema. Se la finestra della visualizzazione dell'input è già nascosta, questa funzione non farà nulla.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
Indica che l'evento chiave ricevuto da onKeyEvent è 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
Vero se la sequenza di tasti è stata gestita, falso in caso contrario
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
Invia gli eventi chiave. Questa funzione dovrebbe essere utilizzata dalle tastiere virtuali. Quando un utente preme uno o più tasti di 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 inviarli a un campo non di input.
-
keyData
Dati sull'evento chiave.
-
Resi
-
Promise<void>
Chrome 111+
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
Evidenzia/Annulla 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
"annulla"
Il tipo di finestra a cui appartiene il pulsante.
-
Resi
-
Promise<void>
Chrome 111+
setAssistiveWindowProperties()
chrome.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+
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
Imposta l'elenco dei candidati corrente. L'operazione non va a buon fine se l'estensione non è proprietaria del metodo di input 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 (facoltativo)
L'ID in cui aggiungere questi candidati
-
utilizzo
oggetto 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 del candidato.
-
Resi
-
Promise<boolean>
Chrome 111+
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
Imposta le proprietà della finestra del candidato. L'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
Il testo visualizzato nella parte inferiore della finestra del candidato.
-
auxiliaryTextVisible
booleano facoltativo
Se il valore è vero, il testo ausiliario viene visualizzato; se è falso, viene nascosto.
-
currentCandidateIndex
number (facoltativo)
Chrome 84 e versioni successiveL'indice del candidato scelto attualmente sul totale dei candidati.
-
cursorVisible
booleano facoltativo
True per mostrare il cursore, false per nasconderlo.
-
pageSize
number (facoltativo)
Il numero di candidati da visualizzare per pagina.
-
totalCandidates
number (facoltativo)
Chrome 84 e versioni successiveIl numero totale di candidati per la finestra dei candidati.
-
verticale
booleano facoltativo
Vero se la finestra del candidato deve essere visualizzata in verticale, falso per visualizzarla in orizzontale.
-
visibile
booleano facoltativo
True per mostrare la finestra del candidato, false per nasconderla.
-
windowPosition
WindowPosition facoltativo
Dove visualizzare la finestra dei candidati.
-
-
Resi
-
Promise<boolean>
Chrome 111+
setComposition()
chrome.input.ime.setComposition(
parameters: object,
): Promise<boolean>
Imposta la composizione attuale. Se questa estensione non è proprietaria dell'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 terminare questo segmento.
-
start
numero
Indice del carattere da cui iniziare questo segmento
-
stile
Il tipo di sottolineatura per modificare questo segmento.
-
-
selectionEnd
number (facoltativo)
Posizione nel testo in cui termina la selezione.
-
selectionStart
number (facoltativo)
Posizione nel testo in cui inizia la selezione.
-
testo
stringa
Testo da impostare
-
Resi
-
Promise<boolean>
Chrome 111+
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
Imposta la posizione del cursore nella finestra del candidato. Si tratta di un'operazione nulla se questa estensione non è proprietaria dell'IME attivo.
Parametri
-
Parametri
oggetto
-
candidateID
numero
ID del candidato da selezionare.
-
contextID
numero
ID del contesto proprietario della finestra del candidato.
-
Resi
-
Promise<boolean>
Chrome 111+
setMenuItems()
chrome.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+
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Aggiorna lo stato delle voci di menu specificate
Parametri
-
Parametri
Resi
-
Promise<void>
Chrome 111+
Eventi
onActivate
chrome.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
callback
ha il seguente aspetto:(engineID: string, screen: ScreenType) => void
-
engineID
stringa
-
schermo
-
onAssistiveWindowButtonClicked
chrome.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
callback
ha il seguente aspetto:(details: object) => void
-
dettagli
oggetto
-
buttonID
L'ID del pulsante su cui è stato fatto clic.
-
windowType
Il tipo di finestra assistiva.
-
-
onBlur
chrome.input.ime.onBlur.addListener(
callback: function,
)
Questo evento viene inviato quando il focus esce da una casella di testo. Viene inviato a tutte le estensioni che sono in ascolto di questo evento e che sono state attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(contextID: number) => void
-
contextID
numero
-
onCandidateClicked
chrome.input.ime.onCandidateClicked.addListener(
callback: function,
)
Questo evento viene inviato se l'estensione è proprietaria dell'IME attivo.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
stringa
-
candidateID
numero
-
pulsante
-
onDeactivated
chrome.input.ime.onDeactivated.addListener(
callback: function,
)
Questo evento viene inviato quando un IME viene disattivato. Indica che l'IME non riceverà più eventi onKeyPress.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(engineID: string) => void
-
engineID
stringa
-
onFocus
chrome.input.ime.onFocus.addListener(
callback: function,
)
Questo evento viene inviato quando il focus entra in una casella di testo. Viene inviato a tutte le estensioni che sono in ascolto di questo evento e che sono state attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(context: InputContext) => void
-
context
-
onInputContextUpdate
chrome.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 che sono state attivate dall'utente.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(context: InputContext) => void
-
context
-
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
Attivato quando un evento chiave viene inviato dal sistema operativo. L'evento verrà inviato all'estensione se questa è proprietaria dell'IME attivo. La funzione listener deve restituire true se l'evento è stato gestito e false in caso contrario. Se l'evento verrà valutato in modo asincrono, questa funzione deve restituire undefined e l'IME deve chiamare in un secondo momento keyEventHandled() con il risultato.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
stringa
-
keyData
-
requestId
stringa
-
returns
boolean | undefined
-
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Chiamato quando l'utente seleziona una voce di menu.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(engineID: string, name: string) => void
-
engineID
stringa
-
nome
stringa
-
onReset
chrome.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
callback
ha il seguente aspetto:(engineID: string) => void
-
engineID
stringa
-
onSurroundingTextChanged
chrome.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Chiamato quando la stringa modificabile intorno al cursore viene modificata o quando la posizione del cursore viene spostata. La lunghezza del testo è limitata a 100 caratteri per ogni direzione di andata e ritorno.
Parametri
-
callback
funzione
Il parametro
callback
ha 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 se non è presente alcuna selezione.
-
obiettivo
numero
La posizione finale della selezione. Questo valore indica la posizione del cursore se non è presente alcuna selezione.
-
offset
numero
Chrome 46 o versioni successiveLa posizione di offset di
text
. Poichétext
include solo un sottoinsieme di testo intorno 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 input.
-
-