Skip to content

Download / Load / Scan ​

While running, Kivicube displays three kinds of status UI by default:

  • asset download
  • scene loading
  • recognition scanning

The host page can either keep the default UI or take over with properties and events.

Download Progress ​

Hide the Default Download UI ​

js
await kivicubeIframePlugin.openKivicubeScene(iframe, {
  sceneId,
  hideDownload: true,
});

Take Over Download Progress Yourself ​

js
iframe.addEventListener('downloadAssetProgress', (event) => {
  const progress = event.detail;
  updateProgressBar(progress);
});

Loading State ​

Hide the Default Loading UI ​

js
await kivicubeIframePlugin.openKivicubeScene(iframe, {
  sceneId,
  hideLoading: true,
});

Take Over Loading Yourself ​

js
iframe.addEventListener('loadSceneStart', () => {
  showLoading();
});

iframe.addEventListener('loadSceneEnd', () => {
  hideLoading();
});

Scanning State ​

In Image AR and Basic AR/Gyroscope scenes, the default scan UI is shown until a target is recognized.

Hide the Default Scan UI ​

js
await kivicubeIframePlugin.openKivicubeScene(iframe, {
  sceneId,
  hideScan: true,
});

Show Custom Scan Guidance from the Host Layer ​

js
iframe.addEventListener('loadSceneEnd', () => {
  showScanHint();
});

iframe.addEventListener('tracked', () => {
  hideScanHint();
});

iframe.addEventListener('lostTrack', () => {
  showScanHint();
});

Light Customization ​

  • keep the default download and loading UI
  • customize only the scan copy

Moderate Customization ​

  • hide download and loading UI
  • use your own host-layer progress bar and landing page content
  • keep scan-state visuals consistent with the host brand

Heavy Customization ​

  • hide all default flow UI
  • maintain a full host-layer state machine yourself
  • drive every phase with events

Notes ​

Once you hide the default UI, the host page takes responsibility for:

  • clearly telling users whether the app is downloading, loading, or waiting for recognition
  • preventing the page from feeling frozen
  • managing custom UI state correctly