ESC
Type to search...
S
Soli Docs

Platform limits

What the native bridge deliberately does not pretend to own.

Prefer the web API when the host has one. Cross the bridge only when the embedded web view cannot. Background location, store billing, and home-screen widgets sit outside that contract — helpers exist so feature-detection stays honest.

Background location

if (soli.nativeBridge.supports("background_location")) {
  await soli.nativeBridge.startBackgroundLocation({ distanceFilter: 25 })
} else {
  // navigator.geolocation while the page is open only
}
HostStatus
Browser / PWAForeground geolocation only
Generated shells (default)Not in capabilities — NotSupportedError
Custom shellDeclare background_location and implement bridge methods

In-app purchases

try {
  await soli.nativeBridge.purchase("sku.premium.monthly")
} catch (err) {
  if (err.name === "NotSupportedError") { /* web checkout */ }
}

Soli does not ship StoreKit or Play Billing. A shell may list iap; until then purchase rejects.

Widgets / Live Activities

Not part of the WebView thesis. Ship a native extension beside the generated shell if you need a home-screen glance.

What is first-class