Come archiviare le preferenze utente
Questo articolo illustra come archiviare le impostazioni dell'interfaccia utente dell'utente, o preferenze utente, tramite le opzioni del Software Development Kit (SDK) -preferences e -onPreferencesChanged dello Strumento di lettura immersiva.
Quando l'opzione CookiePolicy SDK è impostata su Abilitato, l'applicazione Strumento di lettura immersiva archivia le preferenze utente, ad esempio dimensioni del testo, colore del tema e tipo di carattere usando i cookie. Questi cookie sono locali per un browser e un dispositivo specifici. Ogni volta che Strumento di lettura immersiva viene avviato nello stesso browser e dispositivo, verrà aperto con le preferenze utente dell'ultima sessione nel dispositivo. Tuttavia, se l'app Strumento di lettura immersiva viene avviata in un browser o dispositivo diverso, le impostazioni inizialmente configurate saranno quelle predefinite. L'utente deve impostare le proprie preferenze in ogni nuovo dispositivo usato. Le opzioni -preferences
e -onPreferencesChanged
dell’SDK dello Strumento di lettura immersiva consentono alle applicazioni di eseguire il roaming delle preferenze di un utente in vari browser e dispositivi, in modo da presentare un'esperienza coerente ovunque l'applicazione venga usata.
Prima di tutto, specificando l'opzione dell'SDK di callback -onPreferencesChanged
all'avvio dell'applicazione dello Strumento di lettura immersiva, quest’ultimo invierà una stringa -preferences
all'applicazione host ogni volta che l'utente modifica le proprie preferenze durante una sessione. L'applicazione host è quindi responsabile dell'archiviazione delle preferenze utente nel proprio sistema. Quindi, quando lo stesso utente avvia nuovamente lo Strumento di lettura immersiva, l'applicazione host recupera le preferenze dell’utente dallo spazio di archiviazione e le specifica come opzione dell’SDK della stringa -preferences
all'avvio dell'applicazione dello Strumento di lettura immersiva, in modo che le preferenze dell'utente vengano ripristinate.
Questa funzionalità può essere usata come mezzo alternativo per archiviare le preferenze utente nel caso in cui l'uso dei cookie non sia opportuno o fattibile.
Attenzione
Non tentare di modificare a livello di codice i valori della stringa -preferences
inviata da e verso l'applicazione dello Strumento di lettura immersiva perché questo potrebbe causare un comportamento imprevisto risultante in un'esperienza utente deteriorata. Le applicazioni host non devono mai assegnare un valore personalizzato o modificare la stringa -preferences
. Quando si usa l'opzione della stringa -preferences
, usare solo il valore esatto restituito dall'opzione di callback -onPreferencesChanged
.
Abilitare l'archiviazione delle preferenze utente
Il parametro launchAsyncoptions
dell’SDK dello Strumento di lettura immersiva contiene il callback -onPreferencesChanged
. Questa funzione verrà chiamata ogni volta che l'utente modifica le proprie preferenze. Il parametro value
contiene una stringa che rappresenta le preferenze correnti dell'utente. Questa stringa viene quindi archiviata per tale utente dall'applicazione host.
const options = {
onPreferencesChanged: (value: string) => {
// Store user preferences here
}
};
ImmersiveReader.launchAsync(YOUR_TOKEN, YOUR_SUBDOMAIN, YOUR_DATA, options);
Struttura JSON preferenze di esempio
Di seguito è riportato un esempio dell'aspetto del parametro value
durante l'analisi, insieme ai tipi per ogni campo:
{
"displayOptionsState": {
"textSize": "number",
"fontFamily": "string",
"textSpacing": "number",
"formattingEnabled": "boolean",
"theme": "string",
"themeSetByUser": "boolean",
"syllabificationEnabled": "boolean",
"nounHighlightingEnabled": "boolean",
"nounHighlightingColor": "string",
"verbHighlightingEnabled": "boolean",
"verbHighlightingColor": "string",
"adjectiveHighlightingEnabled": "boolean",
"adjectiveHighlightingColor": "string",
"adverbHighlightingEnabled": "boolean",
"adverbHighlightingColor": "string",
"pictureDictionaryEnabled": "boolean",
"posLabelsEnabled": "boolean"
},
"readAloudState": {
"readAloudSpeed": "number",
"voice": "string"
},
"translationState": {
"shouldTranslateWords": "boolean",
"translationLanguage": "string" // encoded JSON
}
}
Ed ecco l'esempio per il codice JSON translationLanguage
decodificato.
{
"text": "string",
"key": "string",
"data": {
"tlc": "string",
"slc": "string"
}
}
Caricare le preferenze utente
Passare le preferenze utente all'app Strumento di lettura immersiva usando l'opzione -preferences
. Un esempio semplice per archiviare e caricare le preferenze utente è il seguente:
const storedUserPreferences = localStorage.getItem("USER_PREFERENCES");
let userPreferences = storedUserPreferences === null ? null : storedUserPreferences;
const options = {
preferences: userPreferences,
onPreferencesChanged: (value: string) => {
userPreferences = value;
localStorage.setItem("USER_PREFERENCES", userPreferences);
}
};