Udostępnij za pośrednictwem


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);
    }
};

Następny krok