Ukládání uživatelských předvoleb
Tento článek ukazuje, jak uložit nastavení uživatelského rozhraní uživatele nebo uživatelské předvolby prostřednictvím možností -preferences a -onPreferencesChanged Asistivní čtečka SDK.
Pokud je možnost CookiePolicy SDK nastavena na Povoleno, aplikace Asistivní čtečka ukládá uživatelské předvolby, jako je velikost textu, barva motivu a písmo, pomocí souborů cookie. Tyto soubory cookie jsou místní pro konkrétní prohlížeč a zařízení. Pokaždé, když uživatel spustí Asistivní čtečka na stejném prohlížeči a zařízení, otevře se s předvolbami uživatele z poslední relace na daném zařízení. Pokud ale uživatel otevře aplikaci Asistivní čtečka na jiném prohlížeči nebo zařízení, nastavení se zpočátku nakonfiguruje s výchozím nastavením Asistivní čtečka a uživatel musí znovu nastavit předvolby pro každé zařízení, které používá. Možnosti -preferences
sady SDK a -onPreferencesChanged
Asistivní čtečka poskytují způsob, jak aplikace používat předvolby uživatele v různých prohlížečích a zařízeních, aby uživatel měli konzistentní prostředí bez ohledu na to, kde aplikaci používá.
Nejprve zadáním možnosti zpětného -onPreferencesChanged
volání sady SDK při spuštění aplikace Asistivní čtečka odešle Asistivní čtečka -preferences
řetězec zpět do hostitelské aplikace pokaždé, když uživatel změní předvolby během Asistivní čtečka relace. Hostitelská aplikace pak zodpovídá za ukládání uživatelských předvoleb do vlastního systému. Když pak stejný uživatel znovu spustí Asistivní čtečka, může hostitelská aplikace načíst předvolby daného uživatele z úložiště a zadat je jako -preferences
možnost sdk řetězce při spuštění aplikace Asistivní čtečka, aby se obnovily předvolby uživatele.
Tuto funkci lze použít jako alternativní způsob ukládání uživatelských předvoleb, pokud používání souborů cookie není žádoucí nebo proveditelné.
Upozornění
Nepokoušejte se programově změnit hodnoty -preferences
řetězce odesílaného do a z aplikace Asistivní čtečka, protože to může způsobit neočekávané chování, které vede ke zhoršení uživatelského prostředí. Hostitelské aplikace by nikdy neměly přiřazovat vlastní hodnotu řetězci ani s ním -preferences
manipulovat. Při použití -preferences
možnosti řetězce použijte pouze přesnou hodnotu vrácenou z možnosti zpětného -onPreferencesChanged
volání.
Povolení ukládání uživatelských předvoleb
Parametr launchAsync options
sady Asistivní čtečka SDK obsahuje -onPreferencesChanged
zpětné volání. Tato funkce bude volána vždy, když uživatel změní předvolby. Parametr value
obsahuje řetězec, který představuje aktuální předvolby uživatele. Tento řetězec se pak uloží pro tohoto uživatele hostitelskou aplikací.
const options = {
onPreferencesChanged: (value: string) => {
// Store user preferences here
}
};
ImmersiveReader.launchAsync(YOUR_TOKEN, YOUR_SUBDOMAIN, YOUR_DATA, options);
Příklad struktury JSON předvoleb
Tady je příklad toho, jak value
vypadá parametr při analýze spolu s typy pro jednotlivá pole:
{
"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
}
}
A tady ukázka translationLanguage
dekódovaného KÓDU JSON.
{
"text": "string",
"key": "string",
"data": {
"tlc": "string",
"slc": "string"
}
}
Načtení uživatelských předvoleb
Pomocí této možnosti předejte předvolby uživatele do aplikace -preferences
Asistivní čtečka. Triviální příklad pro ukládání a načítání předvoleb uživatele je následující:
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);
}
};