所以 iOS 不支持渐进式网络应用程序对蓝牙的本地访问。有什么解决方法吗? Youtube.com 绝对可以播放蓝牙扬声器的声音,所以在某种程度上是可能的。 Safari 网站是否仍然有可能以某种方式任意与蓝牙设备通话?
您要求的是从 iOS 上的 Safari 访问 Web Bluetooth API。为此,支持 Safari 的浏览器引擎 WebKit 必须实现该功能。目前官方状态是“不考虑”.
换句话说:你不会在明天或任何时候在 iOS 上的 Safari 中找到对 Web Bluetooth API 的支持。
可能的解决方法在很大程度上取决于您的具体情况。您可以控制蓝牙设备吗?该设备是否有其他通信方式?您的网络应用程序的用户是否可以接受下载替代浏览器?这是我脑海中的一些想法。
构建您自己的支持 Web 蓝牙 API 的浏览器
在为 iOS 和 iPadOS 开发本机应用程序时,您可以访问蓝牙。您可以使用 WKWebView 构建自定义 Web 浏览器,并自己添加对 Web Bluetooth API 的支持。
下载支持网络蓝牙的网络浏览器
我成功地使用了 WebBLE 和 Cider Connect。
创意解决方案
如果您可以控制蓝牙设备,可能会有其他创造性的解决方案来解决您的问题。如您所写,可以将音频从网站流式传输到蓝牙扬声器(反之亦然)。如果您可以控制蓝牙设备,则没有什么可以阻止您通过音频发送数据(就像过去的美好时光一样构建声学调制解调器)。
也许蓝牙设备有其他连接或传感器。如果它有摄像头,渐进式网络应用程序可以通过这种方式发送数据。
但是,在不了解您要完成的目标的情况下,想出点子有点困难。
考虑一个 Web BLE 浏览器,例如 Bluefy - 它的行为实际上与传统浏览器一样,但具有 Web 蓝牙支持。
Safari/iOS 可能有一天会支持 Web Bluetooth API 但目前他们不支持。
问题是所有 iOS 设备都被限制只能使用 Apple 的 WebKit 引擎,不支持 BLE。
这被证明是一个有争议的问题,因为 最近的发展(截至撰写本文时)可能会看到 Apple 取消了此限制。浏览器、PWA 等将不再需要使用 WebKit,并且可以使用任何支持 BLE 的引擎(例如 Chromium 的)。