All Projects → urish → Web Bluetooth Polyfill

urish / Web Bluetooth Polyfill

Windows 10 Web Bluetooth Polyfill

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Web Bluetooth Polyfill

Pixivbatchdownloader
Chrome 扩展,批量下载 Pixiv 的插画和小说。过滤作品、下载时重命名、转换动态图片等。Powerful Pixiv batch downloader. Batch download artworks and novels, filter works, rename when downloading, convert animated images, and more.
Stars: ✭ 1,109 (+1530.88%)
Mutual labels:  chrome-extension
Patterns Library
AXA CH UI components library. Please share, comment, create issues and work with us!
Stars: ✭ 63 (-7.35%)
Mutual labels:  polyfill
Enhanced Github
🚀 Browser extension to display size of each file, download link and copy file contents directly to the clipboard
Stars: ✭ 1,146 (+1585.29%)
Mutual labels:  chrome-extension
Jike Meow
No longer maintained.
Stars: ✭ 61 (-10.29%)
Mutual labels:  chrome-extension
Ymc
Manage Yandex.Music from any macOS window
Stars: ✭ 62 (-8.82%)
Mutual labels:  chrome-extension
Webext Redux
A set of utilities for building Redux applications in Web Extensions.
Stars: ✭ 1,124 (+1552.94%)
Mutual labels:  chrome-extension
Starmark
Turn your GitHub stars into Chrome bookmarks
Stars: ✭ 60 (-11.76%)
Mutual labels:  chrome-extension
Awsconsolerecorder
Records actions made in the AWS Management Console and outputs the equivalent CLI/SDK commands and CloudFormation/Terraform templates.
Stars: ✭ 1,152 (+1594.12%)
Mutual labels:  chrome-extension
Insta Downloader Extension
A browser extension that injects download buttons ⬇️ for media on Instagram Web
Stars: ✭ 63 (-7.35%)
Mutual labels:  chrome-extension
Devtwitter
Bringing dev.to headlines to your Twitter browsing experience.
Stars: ✭ 66 (-2.94%)
Mutual labels:  chrome-extension
One Click Extensions Manager
a simple chrome extension to manage chrome extension
Stars: ✭ 61 (-10.29%)
Mutual labels:  chrome-extension
Ccfrank4dblp
Displays the China Computer Federation (CCF) recommended rank of international conferences and journals in the dblp and Google Scholar search results.
Stars: ✭ 62 (-8.82%)
Mutual labels:  chrome-extension
Professional Codes Reader
Browse the web like a professional programmer!
Stars: ✭ 63 (-7.35%)
Mutual labels:  chrome-extension
Chromedfigma
Figma html export chrome extension
Stars: ✭ 61 (-10.29%)
Mutual labels:  chrome-extension
Files
A modern file manager that pushes the boundaries of the platform.
Stars: ✭ 15,198 (+22250%)
Mutual labels:  windows-10
Freeyourstuff.cc
freeyourstuff.cc - universal content liberation
Stars: ✭ 60 (-11.76%)
Mutual labels:  chrome-extension
Document Register Element
A stand-alone working lightweight version of the W3C Custom Elements specification
Stars: ✭ 1,123 (+1551.47%)
Mutual labels:  polyfill
Latestupdate
A module to retrieve and download Windows 10 current updates from the Microsoft Update Catalog
Stars: ✭ 68 (+0%)
Mutual labels:  windows-10
Runinbash
Run Linux commands under WSL without leaving your PowerShell or CMD!
Stars: ✭ 67 (-1.47%)
Mutual labels:  windows-10
Sic
Enumerate user mode shared memory mappings on Windows.
Stars: ✭ 66 (-2.94%)
Mutual labels:  windows-10

Windows 10 Web Bluetooth Polyfill

The Polyfill enables Web Bluetooth in Chrome on Windows 10.

Build Status

Depracted - Web Bluetooth is now available in Chrome

Native Web Bluetooth support is now available on Chrome for Windows.

This polyfill is no longer required and is now deprecated.

Installation

  1. You need to have Windows 10 Creators Update (version 1703 / build 15063) or newer
  2. You also need Visual C++ Redistributable for Visual Studio 2015 (x86), if not already installed
  3. Clone this repo: git clone https://github.com/urish/web-bluetooth-polyfill
  4. Open Chrome Extensions pane (chrome://extensions/) and enable "Developer Mode" (there is a checkbox on top of the page)
  5. Click the "Load unpacked extension..." button
  6. Choose the extension folder inside the cloned repo
  7. Take a note of the extension ID for the newly added extension, you will need it in step 8. The ID is a long string of lowercase english letters, e.g. mfjncijdfecdpkfldkechgoadojddehp
  8. Download the latest BLEServer and unpack it inside C:\Program Files (x86)\Web Bluetooth Polyfill
  9. Edit C:\Program Files (x86)\Web Bluetooth Polyfill\manifest.json and change the extension id in the allowed_origins section to match the extension ID you found in step 6
  10. Run C:\Program Files (x86)\Web Bluetooth Polyfill\register.cmd to register the Native Messaging server

That's it! Enjoy Web Bluetooth on Windows :-)

Troubleshooting

  1. Run the winver program to verify that you have Windows 10 Creators Update. It should display: "Version 1703 (OS Build 15063.413)" or higher.
  2. Try to running C:\Program Files (x86)\Web Bluetooth Polyfill\BLEServer.exe manually. If an error message containing something like "VCRUNTIME140.dll is missing" appears, install Visual C++ Redistributable for Visual Studio 2015 (x86). Then launch C:\Program Files (x86)\Web Bluetooth Polyfill\BLEServer.exe one more time. If a black window containing {"_type":"Start"} appears, then the BLEServer is working correctly. Although since Windows 10 build 1709 it can still be blocked from running by Windows Defender SmartScreen so Chrome won't be able to start it by itself. You may disable SmartScreen for applications and programs in Windows Defender settings. It's also worth making sure that Web Bluetooth Polyfill folder and files inside have window's users permissions for read, write and execution ( right click -> properties -> security ).
  3. Make sure "Experimental Web Platform Features" flag is disabled. You can set it using this link: chrome://flags/#enable-experimental-web-platform-features
  4. Open the Devtools console of any web page, and look for the message: "Windows 10 Web Bluetooth Polyfill loaded". If you don't see this message, it means that either the extension was not installed correctly, or you already have something setting the navigator.bluetooth object to some value.
  5. Follow the instructions here to debug the background page of the extension.

Current State

TL;DR - Should work out of the box with most Web Bluetooth apps.

Most of the functionality is already there, but there might be slight differences between the current implementation and the spec. Device Chooser UI is still missing, so the first matching device is picked up automatically. Check out the list of issues to see what is currently still missing. Pull Requests are very welcome!

List of API methods / events and their implementation status:

  • [X] requestDevice
  • [X] Device Chooser UI
  • [X] gatt.connect
  • [X] gatt.disconnect
  • [X] gattserverdisconnected event
  • [ ] serviceadded / servicechanged / serviceremoved events (#3)
  • [X] getPrimaryService / getPrimaryServices
  • [X] getCharacteristic / getCharacteristics
  • [X] writeValue
  • [X] readValue
  • [X] startNotifications / characteristicvaluechanged event
  • [x] stopNotifications
  • [ ] getIncludedService / getIncludedServices (#5)
  • [ ] getDescriptor / getDescriptors (#6)

Running tests

If you want to run tests, during local development, you will need node.js and yarn. Then, run the following commands:

yarn
yarn test

You can also run the tests in watch mode, which will only run tests related to files changed since the last commit:

yarn run test:watch
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].