본문으로 건너뛰기
Unveilydocs

오프라인 모드

오프라인 상태를 조회하고 캐시를 제어합니다.

개요

네트워크 연결이 없을 때 캐시된 페이지를 표시하고, 오프라인 모드를 JavaScript로 제어합니다. Android와 iOS에서 동일한 JS API를 사용합니다.

기능AndroidiOS
오프라인 상태 조회
오프라인 모드 제어
캐시 제어

지원 플랜: Basic 이상


오프라인 상태 조회

현재 오프라인 모드 여부는 cache.getOfflineMode()동기적으로 조회합니다.

const isOffline = window.unveilyBridge.cache.getOfflineMode();  // boolean

if (isOffline) {
  showOfflineBanner();
}

app.getInfo의 응답에도 동일한 값이 isOffline 필드로 포함됩니다.

window.unveilyBridge.app.getInfo("onAppInfo");

function onAppInfo(info) {
  console.log(info.isOffline);  // boolean
}

오프라인 상태는 폴링으로 확인합니다

SDK는 네트워크 변경에 대한 전역 이벤트를 발생시키지 않습니다. 상태가 필요한 시점에 getOfflineMode() 또는 getInfo()로 직접 조회하세요 (예: 화면 진입 시, 요청 실패 시).


setOfflineMode

오프라인 모드를 명시적으로 활성화/비활성화합니다. 첫 번째 인자는 boolean이며, 두 번째 인자로 결과 콜백 이름(문자열)을 선택적으로 전달할 수 있습니다.

// 오프라인 모드 켜기
window.unveilyBridge.cache.setOfflineMode(true);

// 결과 콜백을 받으려면 콜백 이름을 함께 전달
window.unveilyBridge.cache.setOfflineMode(true, "onOfflineModeResult");

function onOfflineModeResult(result) {
  console.log(result.enabled);  // boolean — 적용된 상태
  console.log(result.success);  // boolean — 성공 여부
  // 실패 시 result.error 에 사유가 담깁니다
}

콜백 이름을 생략하면 기본값 onOfflineModeResult가 사용됩니다.


오프라인 폴백 페이지 설정

네트워크가 없을 때 표시할 페이지를 assets/config.json에서 설정합니다.

assets/config.json
{
  "offline": {
    "enabled": true,
    "fallbackPage": "offline.html"
  }
}

app/src/main/assets/offline.html을 생성합니다. SDK는 네트워크 변경 이벤트를 발생시키지 않으므로, 다시 시도 버튼으로 페이지를 새로고침하도록 구성합니다.

app/src/main/assets/offline.html
<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>오프라인</title>
</head>
<body>
  <h1>인터넷 연결을 확인해 주세요</h1>
  <p>네트워크 연결이 복구되면 아래 버튼을 눌러 다시 시도하세요.</p>
  <button type="button" onclick="window.location.reload()">다시 시도</button>
</body>
</html>

캐시 제어

clearCache

WebView 캐시를 초기화합니다. 앱 업데이트 후 강제 새로고침이 필요할 때 사용합니다. 인자는 boolean이며, true를 전달하면 캐시 초기화 후 페이지를 새로고침합니다.

window.unveilyBridge.cache.clearCache(true);   // 초기화 후 새로고침
window.unveilyBridge.cache.clearCache(false);  // 초기화만

On this page