Skip to main content
Unveilydocs

Offline Mode

Read offline state and control the cache

Overview

Displays a cached page when there is no network connection, and lets you control offline mode from JavaScript. Android and iOS use the same JS API.

FeatureAndroidiOS
Read offline state
Control offline mode
Cache control

Supported Plan: Basic and above


Reading Offline State

Read whether offline mode is currently active with cache.getOfflineMode(), synchronously.

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

if (isOffline) {
  showOfflineBanner();
}

The same value is also included as the isOffline field in the app.getInfo response.

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

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

Offline state is polled

The SDK does not fire a global event for network changes. Query the state directly with getOfflineMode() or getInfo() whenever you need it (e.g. on screen entry, or when a request fails).


setOfflineMode

Explicitly enable or disable offline mode. The first argument is a boolean; you may optionally pass the name of a result callback (a string) as the second argument.

// Turn offline mode on
window.unveilyBridge.cache.setOfflineMode(true);

// Pass a callback name to receive the result
window.unveilyBridge.cache.setOfflineMode(true, "onOfflineModeResult");

function onOfflineModeResult(result) {
  console.log(result.enabled);  // boolean — the applied state
  console.log(result.success);  // boolean — whether it succeeded
  // On failure, result.error contains the reason
}

If you omit the callback name, the default onOfflineModeResult is used.


Offline Fallback Page Setup

Configure the page to show when there is no network in assets/config.json.

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

Create app/src/main/assets/offline.html. Since the SDK does not fire network-change events, use a retry button to reload the page.

app/src/main/assets/offline.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Offline</title>
</head>
<body>
  <h1>Please check your internet connection</h1>
  <p>Once your network is restored, press the button below to try again.</p>
  <button type="button" onclick="window.location.reload()">Try again</button>
</body>
</html>

Cache Control

clearCache

Clears the WebView cache. Use this when you need to force a refresh after an app update. The argument is a boolean; passing true reloads the page after clearing the cache.

window.unveilyBridge.cache.clearCache(true);   // clear then reload
window.unveilyBridge.cache.clearCache(false);  // clear only

On this page