Permalink
Find file
98 lines (79 sloc) 7.36 KB

Implementation Status

This document shows the implementation status of Web Bluetooth on the different browsers.

Chrome browser logoOpera browser logoServo browser logoFirefox browser logoMicrosoft Edge browser logoSafari browser logoSamsung Internet browser logo

Chrome

Work is in progress:

  • Notes updated 2017-02-15.
  • Know How to file Web Bluetooth Bugs.
  • The chrome://flags/#enable-experimental-web-platform-features flag must be enabled on Linux. In Chrome OS, Android, and Mac, the GATT Communication API is available without any flag.
  • 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)

GATT Communication API

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 βœ“ βœ“ 58 βœ“
{start,stop}Notifications returns this βœ“ βœ“ βœ“ βœ“
Descriptors 58 58 πŸ‘· 58
Event bubbling
Device Disconnected Event βœ“ βœ“ βœ“ βœ“
Service Changed Event
BluetoothUUID βœ“ βœ“ βœ“ βœ“ βœ“
TypeError for bad UUIDs βœ“ βœ“ βœ“ βœ“ βœ“
Invalidate GATT attributes upon disconnect βœ“ βœ“ βœ“ βœ“ βœ“
GATT Blocklist βœ“ βœ“ βœ“ βœ“ βœ“
Low-latency Blocklist Updates βœ“ βœ“ βœ“ βœ“ βœ“

Scanning API

Feature/Platform Chrome OS Android Mac Linux Windows
Advertisements Scanning

Tip: Chrome channel releases are tracked at https://googlechrome.github.io/current-versions/.

Notes

  • Android: Requires Android 6, Marshmallow or later.
  • 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 if BlueZ version is lower than 5.43: sudo /usr/sbin/bluetoothd -E
  • Windows: Requires Windows 8.1.
    • To discover devices the user hasn't yet manually paired, requires Windows 10.

Unsupported platforms

  • 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.

Note: WebBLE is an app for iOS that supports the GATT Communication API. It was created initially for the Puck.js project.

Opera

Same as Chrome unless specified otherwise

Servo

https://szeged.github.io/servo/

Firefox

Microsoft Edge

https://dev.windows.com/en-us/microsoft-edge/platform/status/webbluetooth

Safari

https://bugs.webkit.org/show_bug.cgi?id=101034

Samsung Internet

http://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=296269