webview

"/home/yossef/notes/git/projects/inguide/modules/webview.md"

path: inguide/modules/webview.md

- **fileName**: webview
- **Created on**: 2026-06-16 00:48:42

webview

cs# webview

Purpose: WebView hosting MapLibre GL JS map, JavaScript bridge infrastructure.

MapScreen

File: app/src/main/java/com/inguide/app/ui/map/MapScreen.kt (1771 lines)

MapJsActions

File: app/src/main/java/com/inguide/app/ui/map/MapJsActions.kt

MapBridge (@JavascriptInterface)

Registered as "AndroidBridge" on the WebView. JS calls window.AndroidBridge.*:

Method Triggered when
onMapReady() Map initialized
onMapError(msg) Error occurs
clearMapStorage() JS requests storage clear
onMapMetadata(payload) Map loaded
onSessionSnapshot(payload) Map moves/zooms
onFloorsChanged(payload) Floor list changes
onFloorChanged(id, label) Floor changes
onUploadReady() Upload UI shown
onRouteComputed(payload) Route computed (→ AR)

android-bridge.js

File: maplibra_web/src/app/android-bridge.js

route.js (bridge trigger)

File: maplibra_web/src/path-renderer/route.js

After all route computations succeed, setRoute() calls:

if (route && typeof window !== 'undefined' && window.AndroidBridge?.onRouteComputed) {
    window.AndroidBridge.onRouteComputed(JSON.stringify(route));
}

Sent JSON: { lineFeatures, connectorFeatures, startFeature, endFeature, outdoorFeature }

Related: ./pathfinding.md, ../flows/route-data-flow.md

continue:[[]]
before:[[]]