Поделиться через


Сохранение настроек пользователя

В этой статье показано, как хранить параметры пользовательского интерфейса пользователя или параметры пользователя с помощью параметров sdk для -preferences и -onPreferencesChanged Иммерсивное средство чтения SDK.

Если для параметра ПАКЕТА SDK CookiePolicy задано значение "Включено", приложение Иммерсивное средство чтения сохраняет настройки пользователя, такие как размер текста, цвет темы и шрифт с помощью файлов cookie. Эти файлы cookie являются локальными для определенного браузера и устройства. Каждый раз, когда пользователь запускает Иммерсивное средство чтения в одном браузере и устройстве, он открывается с предпочтениями пользователя из последнего сеанса на этом устройстве. Однако если пользователь открывает приложение Иммерсивное средство чтения в другом браузере или устройстве, параметры изначально настраиваются с параметрами по умолчанию Иммерсивное средство чтения, а пользователь должен снова задать свои предпочтения для каждого используемого устройства. Параметры пакета SDK -preferences и -onPreferencesChanged для иммерсивного средства чтения позволяют приложениям перемещать настройки пользователя между различными браузерами и устройствами, чтобы обеспечить единообразие пользовательского интерфейса при использовании приложения.

Во-первых, указав -onPreferencesChanged параметр пакета SDK обратного вызова при запуске приложения Иммерсивное средство чтения, Иммерсивное средство чтения отправляет -preferences строку обратно в хост-приложение при каждом изменении настроек пользователя во время сеанса Иммерсивное средство чтения. Затем ведущее приложение отвечает за хранение настроек пользователя в собственной системе. Затем, когда тот же пользователь снова запускает иммерсивное средство чтения, ведущее приложение может получить настройки этого пользователя из хранилища и предоставить их в качестве строкового параметра -preferences пакета SDK при запуске иммерсивного средства чтения, чтобы восстановить параметры пользователя.

Эту функцию можно использовать в качестве альтернативного средства для хранения пользовательских настроек при использовании файлов cookie не является желательным или невозможным.

Внимание

Не пытайтесь программным способом изменить значения -preferences строки, отправляемой в приложение Иммерсивное средство чтения, так как это может привести к неожиданному поведению, что приводит к снижению взаимодействия с пользователем. Ведущие приложения никогда не должны назначать настраиваемое значение или манипулировать строкой -preferences. При использовании строкового параметра -preferences используйте только то точное значение, которое было возвращено параметром обратного вызова -onPreferencesChanged.

Включение хранения пользовательских настроек

Параметр launchAsync options пакета SDK Иммерсивное средство чтения содержит обратный -onPreferencesChanged вызов. Эта функция будет вызываться каждый раз, когда пользователь изменяет свои настройки. Параметр value содержит строку, которая представляет текущие настройки пользователя. Затем эта строка сохраняется для этого пользователя ведущим приложением.

const options = {
    onPreferencesChanged: (value: string) => {
        // Store user preferences here
    }
};

ImmersiveReader.launchAsync(YOUR_TOKEN, YOUR_SUBDOMAIN, YOUR_DATA, options);

Пример структуры JSON параметров

Ниже приведен пример того, как value выглядит параметр при синтаксическом анализе, а также типы для каждого поля:

{
    "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
    }
}

И здесь пример декодированного translationLanguage JSON.

{
  "text": "string",
  "key": "string",
  "data": {
    "tlc": "string",
    "slc": "string"
  }
}

Загрузка параметров пользователя

Передайте параметры пользователя в приложение Иммерсивное средство чтения с помощью -preferences параметра. Упрощенный пример хранения и загрузки настроек пользователя выглядит следующим образом:

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

Следующий шаг