To what extent is web bluetooth usable in mobile devices? - ios

From my understanding, the web bluetooth api found here:
https://googlechrome.github.io/samples/web-bluetooth/
is good with chrome across devices, but other browsers do not support it. Is this true?
this stackoverflow post says otherwise but it was two years ago and i'm just not sure if its even possible with IOS or a significant number of devices.
Scanning for beacons on iOS thru' web browser
I also saw this hackaday site that says you need the WebBLE app to do this, is that true?
https://hackaday.io/project/164733-pisugar-battery-for-raspberry-pi-zero/log/167217-use-web-bluetooth-to-connect-your-pi

Web Bluetooth Implementation Status is the best source for status.
On mobile: Android support via Chrome, Samsung Internet. iOS support via WebBLE.

Related

WebBLE support in iOS

I am trying to interact with a BLE device through webBle. I was able to do this in Chrome in Android. I was trying to do that same thing in iOS Chrome as well using.
navigator.bluetooth
But it was not working and after some research, I found that it's supported only in macOS and not in iOS.
I was wondering if there is any way for me to interact with the BLE device on iOS using a browser?
Web Bluetooth is not supported by Mobile Safari or WkWebView and has not been added by major 3rd-party browsers on iOS. There is however a Web Bluetooth-specific browser called WebBLE which includes an implementation of Web Bluetooth. It is open source software with code available on GitHub.

What is the status of Webauthn on iOS/Safari?

I am doing a presentation on the FIDO2/Webauthn standard in a few days and I was excited to see this article on Yubico's website stating that Apple has added support for FIDO authentication via NFC like Android has for years. I had a few of my colleagues go to the various Webauthn test sites out there (webauthn.me, webauthn.io etc) on a newer device running iOS 13.1 but they all display errors stating that the browser is not supported (both safari and chrome). Is there something you have to do to enable this functionality or are we waiting for an update from Apple to enable the feature?
We're waiting on this too. What does bode well is the new NFC write support that was added in 13. The WebAuthn JavaScript API is also available in Safari as an experimental feature - it just doesn't do any FIDO2/CTAP2 stuff yet.
I fully expect to see native support (using NFC, Lightning and built-in PIN/Touch/Face ID) in the not too distant future - especially given Apple are on-board with this and the support in desktop Safari is good.
The question is when...
Editted to add 15 Dec 2019:
As of the 10th of Dec 2019 Safari on iOS 13.3 supports second factor (i.e. not usernameless/passwordless) sign in using NFC, Lightning or USB security keys. I've tested this myself using 2 different Yubico keys that support NFC.
Unfortunately it does not look like registration via the WebAuthn API is working at this time. It presents a UI prompt to plug in or tap the key but nothing seems to happen.
There is also no support yet for using the phone itself as a security key via PIN, Touch ID or Face ID.
This is still a significant step and I can only hope that Apple continues to expand the supported featureset.
Article here: https://www.yubico.com/2019/12/native-support-for-webauthn-and-fido-is-finally-here-on-iphones-and-ipads/
Updated to add announcement for Touch and Face ID on iOS:
https://developer.apple.com/videos/play/wwdc2020/10670/
UPDATE:
Starting with iOS 13.3, WebAuthn support is added in Safari. WebAuthn compatible security keys using NFC, Lightning or USB should work with current implementations of the API. I have been able to verify this using my Yubikey 5Ci using Lightning.
Original answer:
At the moment, there is no support for the WebAuthn API in iOS/iPadOS and there is also no method to enable it. As far as I know, FIDO authentication on iOS currently only works for apps that have integrated it.
On this page you can see exactly what browsers support the WebAuthn API (ar any other web API) at the moment.
Safari with iOS/iPadOS 14 and macOS Big Sur supports WebAuthn with FaceID and TouchID, as announced at the WWDC 2020.
I've been using a NFC key (FEITAN ePass FIDO -NFC Security Key) for about a year with my iPhone 7 using the latest iOS available on it. Also, the Touch ID is working well on my iPhone 7 and iPad Air 2 (no Face ID on those so I can't test that).
About Touch ID, it is a bit tricky to use. It does not come up as an option to register in Safari javascript if you use a callback rather than the same thread as the button event to call navigator.credentials.create({publicKey}). Finding that out was nasty! So no "setTimeout(register...)" or a promise (.then/await) to launch registration using Touch ID.
I use https://www.npmjs.com/package/fido2-lib as backing library on the server side.

Bluetooth iOS Windows

I recently developed an application for a client, an app iOS, Android and windows, the mobile app acts as a controller and launches certain events on the windows application. The Windows application also shares data at random (not known to the mobile app) moments. The communication was done by TCP. And works great.
The client now wants it for bluetooth. Between Android and Windows, it's not been a problem and has been done, and works well. But iOS is sadly not the same story... The use of Bluetooth low energy seems to complicate things.
I've hunted high and low on google to find anything on communication between a .net application and a Swift application, to no avail. This surprises me that no one talks of a bluetooth communication between Windows and iOS.
My question is, very simply. Is it possible? I know very little about bluetooth and I've tried researching devices and all I find is a BeeWi device that's in our office, not my computer (I maybe need to launch something on computer first? The devices are paired)
My computer has a Bluetooth 4.0 dongle and the BLE emulator is present in the Device manager.
If this isn' possible, tell me know and put me out of my misery, otherwise give me hope!
Any additional advice is warmly welcome - Thank you all !
Beau Carrel
Windows has support for being a BLE client. Just Google it and you'll find many examples, such as https://developer.microsoft.com/en-us/windows/iot/Samples/BLEGatt2.
You need to set up iOS to be an advertising peripheral.

webRTC-enabled browser for iOS?

Preface: there are questions (some good, some bad) already in existance on StackOverflow about webRTC support on various browsers and platforms, including iOS. However I couldn't find anything definitive that was more recent than ~2012, and this is a rapidly-changing field.
I'm working on a browser-based webapp that uses webRTC for minimal-latency peer-to-peer data transfer (not for audio/video, unlike most applications it would seem - all I need is DataChannel).
I hit a snag when I started testing the data-transfer part of the project and discovered that iOS devices still don't natively support this in their built-in browsers (despite some recent rumors).
Bowser is a free open-source browser App for iOS that purports to support webRTC on iOS. The problem is that when I try to open the app, it simply crashes and closes. I've tested this on an iPhone 5 and 5s. Googling has failed to turn up alternatives - even Chrome for iOS doesn't currently support webRTC it seems.
My questions:
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
3) What strategies have other people used to work around this limitation?
As of iOS 11, WebRTC is now supported in Safari: https://developer.apple.com/library/archive/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_0.html#//apple_ref/doc/uid/TP40014305-CH13-SW1
Check out crosswalk project ( https://crosswalk-project.org )
This Provides runtime of Chromium engine for native support in older devices.
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
Answer:
There is a Browser called Bowser that supports webRTC.
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
Answer:
It's not crashing as of now.But I couldn't successfully test with anything so far.I have raised an issue about it
3) What strategies have other people used to work around this limitation?
Answer:
Apple is yet to support WebRTC in Webkit so as of now the only way would be develop a native or Hybrid app that would support the unsupported WebRTC APIs.
You can develop a hybrid app powered by OpenWebRTC or cordova-plugin-iosrtc

Is it possible to access the speech recognition on Chrome on the iPad?

Chrome on the iPad support speech recognition for your search.
You can also use that within your own web page.
But it doesn't work on [my] iPad 2 with Chrome.
I can't find anything on the web indicating whether it is or is not supported on the iPad.
Because of Apple politics, that say apps can not "duplicate features that come with the iPhone" all full-featured browsers in app store must be a shells for Safari (default iOS webkit). This means that Google Chrome for iOS actualy just different looking Safari and does not include Chrome-specific API's.

Resources