사용자 기본 설정을 저장하는 방법

이 문서에서는 -preferences-onPreferencesChanged 몰입형 리더 SDK 옵션을 통해 사용자의 UI 설정 또는 사용자 기본 설정을 저장하는 방법을 보여 줍니다.

CookiePolicy SDK 옵션이 사용으로 설정되면 몰입형 리더 애플리케이션은 쿠키를 사용하여 텍스트 크기, 테마 색, 글꼴 등의 사용자 기본 설정을 저장합니다. 이러한 쿠키는 특정 브라우저 및 디바이스에 대해 로컬입니다. 사용자가 동일한 브라우저 및 디바이스에서 몰입형 리더를 시작할 때마다 해당 디바이스의 마지막 세션에서 사용자의 기본 설정으로 열립니다. 그러나 사용자가 다른 브라우저나 디바이스에서 몰입형 리더 앱을 여는 경우 설정은 초기에 몰입형 리더의 기본 설정으로 구성되며 사용자는 사용하는 각 디바이스에 대해 기본 설정을 다시 지정해야 합니다. -preferences-onPreferencesChanged 몰입형 리더 SDK 옵션은 애플리케이션에서 다양한 브라우저와 디바이스에서 사용자의 기본 설정을 로밍할 수 있는 방법을 제공하여 사용자가 애플리케이션을 사용하는 곳에서 일관된 환경을 사용할 수 있습니다.

먼저 몰입형 리더 애플리케이션을 시작할 때 -onPreferencesChanged 콜백 SDK 옵션을 제공하면 사용자가 몰입형 리더 세션 중에 기본 설정을 변경할 때마다 몰입형 리더에서 -preferences 문자열을 호스트 애플리케이션에 다시 보냅니다. 그러면 호스트 애플리케이션에서 사용자 기본 설정을 자체 시스템에 저장해야 합니다. 그런 다음, 동일한 사용자가 몰입형 리더를 다시 시작하면 호스트 애플리케이션에서 스토리지로부터 해당 사용자의 기본 설정을 검색하고, 몰입형 리더 애플리케이션을 시작할 때 -preferences 문자열 SDK 옵션으로 제공하여 사용자의 기본 설정을 복원 할 수 있습니다.

이 기능은 쿠키 사용이 바람직하지 않거나 실행 가능하지 않을 때 사용자 기본 설정을 저장하는 대체 수단으로 사용될 수 있습니다.

주의

몰입형 리더 애플리케이션과 주고받는 -preferences 문자열의 값을 프로그래밍 방식으로 변경하려고 시도하지 마세요. 이로 인해 예기치 않은 동작이 발생하여 사용자 환경이 저하될 수 있습니다. 호스트 애플리케이션에서 사용자 지정 값을 할당하거나 -preferences 문자열을 조작하면 안 됩니다. -preferences 문자열 옵션을 사용하는 경우 -onPreferencesChanged 콜백 옵션에서 반환된 정확한 값만 사용합니다.

사용자 기본 설정 저장 사용

몰입형 리더 SDK launchAsync options 매개 변수에는 -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);
    }
};

다음 단계