This document shows the implementation status of Web Bluetooth on the different browsers.
Work is in progress:
- Notes updated 2016-10-21.
- Know How to file Web Bluetooth Bugs.
- The
chrome://flags/#enable-web-bluetooth
flag must be enabled, or the web page must have an origin trial meta tag or header with a token requested from http://bit.ly/WebBluetoothOriginTrial. - Root Issue 419413: Web Bluetooth and blocking issues are most authorative on status.
- Some Bluetooth GATT operations can't be run in parallel yet. See #188 (comment)
Feature/Platform | Chrome OS | Android | Mac | Linux | Windows |
---|---|---|---|---|---|
getAvailability() | |||||
Referring Device (Physical Web) | |||||
Discovery | ✓ | ✓ | ✓ | ✓ | ✓ |
└ Service list | ✓ | ✓ | ✓ | ✓ | ✓ |
└ Name or prefix | ✓ | ✓ | ✓ | ✓ | ✓ |
└ Manufacturer/Service data | |||||
└ acceptAllDevices | |||||
Chooser UI | ✓ | ✓ | ✓ | ✓ | ✓ |
permissions.request() | |||||
permissions.query() | |||||
permissions.revoke() | |||||
watchAdvertisements() | |||||
Persistent Device IDs | |||||
GATT Server Connect | ✓ | ✓ | ✓ | ✓ | |
GATT Server Disconnect | ✓ | ✓ | ✓ | ✓ | |
Hanging connect() abortable by disconnect() | |||||
getPrimaryService*() | ✓ | ✓ | ✓ | ✓ | |
getIncludedService*() | |||||
getCharacteristic*() | ✓ | ✓ | ✓ | ✓ | |
Characteristic Properties | ✓ | ✓ | ✓ | ✓ | |
Read Characteristic | ✓ | ✓ | ✓ | ✓ | |
Write Characteristic | ✓ | ✓ | ✓ | ✓ | |
Start GATT Notifications | ✓ | ✓ | ✓ | ✓ | |
Stop GATT Notifications | ✓ | ✓ | ✓ | ||
{start,stop}Notifications returns this |
54 | ✓ | ✓ | ✓ | |
Descriptors | |||||
Event bubbling | |||||
Device Disconnected Event | ✓ | ✓ | ✓ | ✓ | |
Service Changed Event | |||||
BluetoothUUID | ✓ | ✓ | ✓ | ✓ | ✓ |
TypeError for bad UUIDs | 55 | 55 | 55 | 55 | 55 |
Invalidate objects upon disconnect | |||||
GATT Blacklist | ✓ | ✓ | ✓ | ✓ | ✓ |
Low-latency Blacklist Updates | ✓ | ✓ | ✓ | ✓ | ✓ |
Feature/Platform | Chrome OS | Android | Mac | Linux | Windows |
---|---|---|---|---|---|
Advertisements Scanning |
Tip: Chrome channel releases are tracked at https://googlechrome.github.io/current-versions/.
- Android: Requires Android 6, Marshmallow or later.
- Tip of tree Chromium builds work on Android 5, Lollipop and later for ease of developers - but Chrome versions will only ever support Marshmallow or later. Read how to play with Web Bluetooth on Lollipop.
- Mac: Requires OS X Yosemite or later.
- Some MacBooks may not work: Check "About this Mac" / "System Report" / "Bluetooth" and verify that Low Energy is supported.
- Linux: Requires Kernel 3.19+ and BlueZ 5.41+ installed. Read How to get Chrome Web Bluetooth working on Linux.
- Note that Bluetooth daemon needs to run with experimental interfaces:
sudo /usr/sbin/bluetoothd -E
- Note that Bluetooth daemon needs to run with experimental interfaces:
- Windows: Requires Windows 8.1.
- To discover devices the user hasn't yet manually paired, requires Windows 10.
- Android WebView: Will be supported in the future.
- iOS: Uses the web exposed APIs as provided by the WKWebView, no implementation planned in the Chromium codebase.
Same as Chrome unless specified otherwise
https://szeged.github.io/servo/
- https://bugzilla.mozilla.org/show_bug.cgi?id=1204396
- https://bugzilla.mozilla.org/buglist.cgi?quicksearch=%5Bweb-bluetooth%5D
https://dev.windows.com/en-us/microsoft-edge/platform/status/webbluetooth
https://bugs.webkit.org/show_bug.cgi?id=101034
http://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=296269