Web Bluetooth in iOS Safari

Install the free beacio Safari extension. Then every Bluetooth web app just works in Safari on your iPhone.

Continue on your iPhone

QR code for beacio.com — scan with your iPhone camera to open the live demo in Safari.

or open beacio.com in Safari

The beacio scanner

Scan results

Three steps, about a minute.

You do this once. After that, every Bluetooth website you open in Safari just works.

1 · Install beacio

It’s free on the App Store. No account, no sign-up, nothing to pay for later.

2 · Turn it on in Safari

Open any website and tap the Page Menu button at the left end of the address bar → Manage Extensions → switch beacio on → Done. Then tap beacio and choose Allow on Every Website, so it works everywhere and not just on one site. (beacio is also listed under Settings > Apps > Safari > Extensions.)

3 · Go back and tap Connect

Open your device’s website and tap its own Connect button. Safari asks once to allow Bluetooth — tap Allow — then pick your device from the list iOS shows you. That list comes from iOS, not from the website.

Will it work with my device?

Blood-pressure cuffs, thermometers, scales, glucose monitors, heart-rate straps, smart locks, trackers, ESP32 and micro:bit boards — beacio doesn’t care what the device is. It cares whether the website already speaks Bluetooth. Sites built for Android Chrome or a laptop generally work unchanged, because it is the same standard API.

“Your browser does not support Bluetooth”

The site put up that banner the moment you opened it on your iPhone. It isn’t your phone and it isn’t the site — Safari simply had no Bluetooth API. beacio adds it.

It works on your friend’s Android

Same website, same device, different phone. That gap is exactly what beacio closes.

The maker’s page says “use Chrome”

Chrome on iPhone is Safari underneath, so switching never helped. With beacio, Safari is the browser that works.

Installed it and nothing happened?

It’s almost always one of these four, and each takes about thirty seconds to check.

The switch isn’t on yet

Installing beacio from the App Store does not switch it on. On any website, tap the Page Menu button at the left end of the address bar → Manage Extensions → switch beacio on → Done.

Walk me through it →

It’s on, but not allowed on this site

Switching beacio on and letting it work on a site are two separate permissions. In the same place you switched it on, choose Allow on Every Website.

Check whether it’s active →

You’re not actually in Safari

Links opened inside Instagram, Facebook, X or LinkedIn run in a mini-browser that can’t load extensions. Tap the … menu, choose Open in Safari, and try again.

The site still says your browser isn’t supported

beacio reports a genuine Safari user agent, and the standard Bluetooth API is there. A few sites check for Chrome by name instead of checking for the API. If that’s what you’re seeing, it’s the site that needs a one-line fix — nothing on your phone can change it.

Tell us which site →

Questions people ask

Does Web Bluetooth work in Safari?

Yes — with the beacio Safari extension installed, navigator.bluetooth works in the real Safari you already use on iPhone: the same URL bar, bookmarks and history, not a separate browser. Pages run under a genuine Safari user agent, so sites that check for an unsupported browser still work. Install beacio from the App Store, turn it on in Safari, and your existing Web Bluetooth code works unchanged.

Is beacio a separate browser app?

No. beacio is a Safari extension, not a separate browser. Your Bluetooth website opens in the real Safari you already use, keeping your bookmarks, history, tabs and autofill. Turn it off in the same place you turned it on, or delete it like any other app, and Safari goes back to exactly how it was.

What does it cost?

Nothing. beacio is free on the App Store, with no account and no sign-up, and it stays free on unlimited websites. Paid plans exist for website operators who want extra capabilities for their own product — never for the person using the site.

What do I need?

An iPhone running iOS 18.0 or later, and Safari. Chrome, Firefox and Edge on iPhone are separate apps and cannot load Safari extensions. Most extensions, beacio included, are switched off in Private Browsing, and the website you are using must be secure (https).

How do I use Bluetooth in a web app on iPhone?

Install the beacio Safari extension from the App Store, turn it on in Safari, then open the Bluetooth website and tap its own Connect button. The website needs no code changes: beacio installs the standard navigator.bluetooth API on every secure page before the page's own scripts run, so the same code that works in Chrome works in Safari on iPhone. The beacio SDK and the CDN script are optional enhancements, not a required step.

Does beacio see my Bluetooth data?

Your device's data goes between your device and the website you opened. Permission checks, the W3C GATT blocklist and origin validation are enforced by beacio on your iPhone, out of reach of the websites you visit, and there is no account to sign in to.

Your site needs no code changes.

beacio installs the standard navigator.bluetooth API on every secure page before the page’s own scripts run, so the code you already ship to Android Chrome runs in iPhone Safari unmodified. The SDK and the CDN script are optional enhancements, not a required step.

How it compares with Chrome

The same Web Bluetooth calls, side by side with Chrome on Android, macOS and Windows.

Feature Chrome (Android, macOS, Windows) beacio in iPhone Safari
Standard Web Bluetooth
requestDevice() with filters and exclusionFilters Yes Yes
GATT connection and discovery: gatt.connect(), disconnect(), getPrimaryService, getCharacteristic, getDescriptor Yes Yes
Characteristic readValue(), writeValueWithResponse(), writeValueWithoutResponse(); descriptor readValue() and writeValue() Yes Yes
startNotifications() and characteristicvaluechanged Yes Yes
Advertisements and scanning
watchAdvertisements() and advertisementreceived Behind a flag Yes
requestLEScan() Behind #enable-experimental-web-platform-features Yes, on navigator.bluetooth
Permissions and lifecycle
getDevices() Behind a flag Yes
forget() Behind a flag Yes
getAvailability() Yes, from Chrome 78 Yes
onavailabilitychanged Not implemented Yes
navigator.permissions.query() for 'bluetooth' Not implemented Yes
beacio additions
BLE connections and alerts while Safari is in the background Disconnects once Chrome is closed Pro
Peripheral mode (the iPhone advertises) No Pro
Auto-reconnect supervision With the same optional SDK With the optional SDK or CDN script
Get it free — App Store