Jak przechowywać preferencje użytkownika
W tym artykule przedstawiono sposób przechowywania ustawień interfejsu użytkownika użytkownika lub preferencji użytkownika za pośrednictwem opcji -preferences i -onPreferencesChanged Czytnik immersyjny SDK.
Gdy opcja Zestawu SDK CookiePolicy jest ustawiona na Włączone, aplikacja Czytnik immersyjny przechowuje preferencje użytkownika, takie jak rozmiar tekstu, kolor motywu i czcionka, przy użyciu plików cookie. Te pliki cookie są lokalne dla określonej przeglądarki i urządzenia. Za każdym razem, gdy użytkownik uruchamia Czytnik immersyjny w tej samej przeglądarce i na tym samym urządzeniu, zostanie otwarty z preferencjami użytkownika z ostatniej sesji na tym urządzeniu. Jeśli jednak użytkownik otworzy aplikację Czytnik immersyjny w innej przeglądarce lub urządzeniu, ustawienia są początkowo konfigurowane przy użyciu domyślnych ustawień Czytnik immersyjny, a użytkownik musi ponownie ustawić swoje preferencje dla każdego używanego urządzenia. Opcje -preferences
zestawu SDK i -onPreferencesChanged
Czytnik immersyjny umożliwiają aplikacjom przechodzenie preferencji użytkownika między różnymi przeglądarkami i urządzeniami, dzięki czemu użytkownik ma spójne środowisko wszędzie tam, gdzie korzystają z aplikacji.
Po pierwsze, podając -onPreferencesChanged
opcję zestawu SDK wywołania zwrotnego podczas uruchamiania aplikacji Czytnik immersyjny, Czytnik immersyjny wysyła -preferences
ciąg z powrotem do aplikacji hosta za każdym razem, gdy użytkownik zmienia preferencje podczas sesji Czytnik immersyjny. Aplikacja hosta jest następnie odpowiedzialna za przechowywanie preferencji użytkownika we własnym systemie. Następnie, gdy ten sam użytkownik uruchomi ponownie Czytnik immersyjny, aplikacja hosta może pobrać preferencje tego użytkownika z magazynu i podać je jako -preferences
opcję zestawu SDK ciągu podczas uruchamiania aplikacji Czytnik immersyjny, aby preferencje użytkownika zostały przywrócone.
Ta funkcja może służyć jako alternatywny sposób przechowywania preferencji użytkownika, gdy używanie plików cookie nie jest pożądane lub możliwe.
Uwaga
Nie próbuj programowo zmieniać wartości ciągu wysyłanego -preferences
do i z aplikacji Czytnik immersyjny, ponieważ może to spowodować nieoczekiwane zachowanie, co spowoduje obniżenie wydajności środowiska użytkownika. Aplikacje hosta nigdy nie powinny przypisywać wartości niestandardowej do ciągu ani manipulować nim -preferences
. W przypadku korzystania z opcji ciągu użyj tylko dokładnej -preferences
wartości zwróconej z opcji wywołania zwrotnego -onPreferencesChanged
.
Włączanie przechowywania preferencji użytkownika
Parametr launchAsync options
zestawu SDK Czytnik immersyjny zawiera wywołanie -onPreferencesChanged
zwrotne. Ta funkcja będzie wywoływana za każdym razem, gdy użytkownik zmieni swoje preferencje. Parametr value
zawiera ciąg, który reprezentuje bieżące preferencje użytkownika. Ten ciąg jest następnie przechowywany dla tego użytkownika przez aplikację hosta.
const options = {
onPreferencesChanged: (value: string) => {
// Store user preferences here
}
};
ImmersiveReader.launchAsync(YOUR_TOKEN, YOUR_SUBDOMAIN, YOUR_DATA, options);
Przykładowa struktura preferencji JSON
Oto przykład tego, jak value
wygląda parametr podczas analizowania wraz z typami dla każdego pola:
{
"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
}
}
W tym przykładzie translationLanguage
dla zdekodowanego kodu JSON.
{
"text": "string",
"key": "string",
"data": {
"tlc": "string",
"slc": "string"
}
}
Ładowanie preferencji użytkownika
Przekaż preferencje użytkownika do aplikacji Czytnik immersyjny przy użyciu -preferences
opcji . Przykładowy przykład przechowywania i ładowania preferencji użytkownika jest następujący:
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);
}
};