WebBLE bridges that gap. Standard API. One script tag. Background sync built in.
The companion app takes over BLE connections, notifications, and scanning when Safari is backgrounded or closed.
The companion app maintains GATT subscriptions even when Safari is backgrounded or
killed. Your web app registers intents through
navigator.webble.backgroundSync, and the companion app takes over.
Characteristic value changes trigger iOS notifications with template interpolation.
You define the templates, including {{value.utf8}} and
{{deviceName}}, and the companion app delivers them.
Register service UUID filters from your web app. The companion app runs its own scan manager and watches for matching BLE advertisements independently.
Active BLE monitoring shows up on the Lock Screen and Dynamic Island. Connection status, device readings, and scan progress stay visible without opening Safari or the companion app.
The Dynamic Island surfaces compact connection state during active monitoring. The Lock Screen widget can show current readings, connection progress, and beacon activity while the app stays in the background.
Live Activity is available in IPC relay mode, where the companion app owns the background BLE lifecycle and publishes state through ActivityKit.
iOS requires a container app to host a Safari Web Extension. The companion app also provides the BLE scanner, onboarding, diagnostics, and background services.
Test Bluetooth connectivity independently of Safari. Scan for nearby devices, inspect advertisements, and verify the radio path before you start wiring integration code.
Guided setup walks users through enabling the extension and granting the Always Allow on Every Website permission. The app also exposes extension heartbeat status, connection state, and background monitoring details.
Teams shipping their own BLE workflow can white-label the companion app with their branding while keeping the same underlying Bluetooth implementation.
15-minute technical walkthrough covering background sync, the companion app flow, and integration mapping.