Skip to content
iOS WebBluetooth Polyfill
Branch: master
Clone or download
Pull request Compare This branch is 126 commits ahead of pauljt:master.
daphtdazz
Latest commit 1e0a356 Apr 13, 2019

README.md

BleBrowser

Initial partial implementation of the Web Bluetooth spec for iOS, to get some basics working.

This builds on Paul Thierault's original implementation.

The app is fundamentally a WKWebView with a polyfill providing the javascript APIs calling through to the CoreBluetooth iOS API via a thin transaction management layer.

Supported APIs v1.0

navigator.bluetooth

  • .requestDevice(options)
    • options.acceptAllDevices = true to ask for any device
    • options.filters is a list of filters (mutually exclusive with acceptAllDevices) with properties
      • name: devices with the given name will be included
      • namePrefix: devices with names with this prefix will be included
      • services: list of service aliases or uuids.

BluetoothDevice

  • .id
  • .name
  • .gatt
  • .gattserverdisconnected: EventHandler

BluetoothRemoteGATTServer

  • .connected
  • .connect()
  • .disconnect()
  • .getPrimaryService(uuid)

BluetoothRemoteGATTService

  • .uuid
  • .device
  • .getCharacteristic(uuid)

BluetoothRemoteGATTCharacteristic

  • .service
  • .uuid
  • .value
  • .readValue()
  • .writeValue(value)
  • .oncharacteristicvaluechanged: EventHandler
  • .startNotifications()
  • .stopNotifications()
  • .addEventListener()
  • .removeEventListener()

Everything else is TBD!

You can’t perform that action at this time.