Сохранение настроек пользователя
В этой статье показано, как хранить параметры пользовательского интерфейса пользователя или параметры пользователя с помощью параметров 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);
}
};