问题标签 [web-bluetooth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
751 浏览

web-bluetooth - Web 蓝牙在 Chrome 浏览器版本 62.0.3202.75(官方版本)(64 位)上不起作用

我刚刚将我的 Chrome 浏览器(在 Ubuntu 桌面上)升级到版本 62.0.3202.75(官方版本)(64 位)。

现在我的网络蓝牙 HTML5 应用程序无法正常工作。它可以连接到 GATT 服务器,但无法获得可用的服务。我正在使用带有此应用程序的 BBC micro:bit 计算机: https ://show.io/demos/microbit/led

你能帮忙吗?

问候,渡轮

0 投票
1 回答
82 浏览

web-bluetooth - 通过蓝牙获取收入电话事件

我有一部电话和一个提供号码和姓名列表的简单网站。

是否可以通过蓝牙将我的手机与浏览器配对并将来电号码传递到站点以显示来电者的姓名?如果没有列出数字,则必须填写。所以,我想使用桌面浏览器输入并使用电话接听电话。

我正在使用网络平台来存储我的客户群。我倾向于将其保留在 Web 上,而无需编写 Desktop API。

0 投票
1 回答
2471 浏览

javascript - JavaScript 中的异步 setter / getter

我正在使用需要大量异步操作的网络蓝牙。我已经为设备名称等属性实现了 setter 和 getter。ES6 中默认不支持异步 setter 和 getter,因此我按照此处的建议使用了以下解决方法:

和:

我可以使用 getter 成功执行以下操作:

但是下面的 setter 会导致 setter 的引用错误“Uncaught ReferenceError: Invalid left-hand side in assignment”:

如果我删除await关键字,则错误得到修复,但脚本将失败,因为它会同时尝试两个 GATT 操作,这是不支持的。

所以看来我只能等待一个getter而不是一个setter。我的 getter 实现是否有问题导致这种情况?在执行异步操作时,我是否必须重新使用类似的函数device.nameSet()而不是 setter?

作为记录,_writeData()看起来_readData()像这样:

0 投票
1 回答
2081 浏览

web-bluetooth - 找不到 requestLEScan() 方法 webbluetooth

我想使用 requestLEScan 方法扫描 ble 外围设备,但我找不到 requestLEScan 方法。我在下面这个文档之后写了

但它会导致这样的错误。

index_html_ _index_html_-_web_bluetooth_-____play_ground_web_bluetooth_

另外,我检查了对象,它只有 requestDevice() 方法

index_html

0 投票
0 回答
702 浏览

android - Web 蓝牙重新连接/自动连接不起作用

我尝试 了用于 Web 蓝牙的Google/chrome 示例。看起来 device.gatt.connect() 只能在 navigator.bluetooth.requestDevice() 的承诺范围内工作。我按照示例保存设备并稍后调用 device.gatt.connect() ,它永远等待并且没有返回。我正在使用 Mac OSX 10.13.3 和 chrome64 以及 Android BLE 外设模拟器(来自 Google playstore)

代码段...

任何人都可以解释如何重新连接绑定设备?

0 投票
1 回答
1455 浏览

android - Web 蓝牙特性.writeValue 自动断开连接

我关注用于 Web 蓝牙的 Google/chrome 示例。我有两个 writeValue 操作。一个是在 requestDevice 承诺中,它工作得很好。第二个,我在动作触发时保存了特征引用和writeValue。消息已发送,但连接自动中断。我正在使用 Mac OSX 10.13.3 和 chrome64 并修改 Android BLE 外设模拟器(来自 google github)

代码段---

有没有人有相同的经验和任何建议保持 writeValue 的连接持久性?

0 投票
1 回答
1253 浏览

javascript - 如何在 JavaScript 中将 eventListener 添加到 web-bluetooth API?

我想制作一个小型物理按钮设备来控制使用网络蓝牙 API 在我的网络应用程序上播放 3 个短音频,这意味着单击一次物理按钮,它将播放第一个音频,再次单击,它将播放第二个音频..

根据我在教程上阅读的内容,我应该使用自定义特征,这需要设备的整个 UUID。之后,我放了一个事件监听器来调用一个函数来播放音频。但我收到错误消息Cannot read property 'addEventListener' of undefined。我不知道为什么会这样。

我错过了什么吗?还是我的逻辑错了?请注意,我还没有物理按钮,所以我现在用我的 iPhone 测试蓝牙连接,所以功能测试只是为了查看任何输出。

以下是我所拥有的:

0 投票
0 回答
1670 浏览

javascript - Angular Web 蓝牙写入和通知示例

目前我正在使用这个模块进行角度:Angular web bluetooth

我可以找到一个如何阅读特征并使其正常工作的示例。但是没有样本可写(或通知)。我很确定这个模块能够完成这些任务,请参见此处,但我对 Angular(甚至 JS?)的了解还不够。

有人知道在哪里可以找到示例或/并且可以提供示例吗?

读取电池电量的片段:

}

谢谢你。

编辑:感谢 Aluan Haddad 的帮助,我能够使用正确的服务和特征 UUID 执行写入请求

0 投票
1 回答
576 浏览

javascript - ENABLE_NOTIFICATION_VALUE - 网络蓝牙 API

客户端配置特征描述符 (CCCD)。

UUID -“00002902-0000-1000-8000-00805f9b34fb”/“gatt.client_characteristic_configuration”。

要在 Android 的 Java 代码中设置 CCCD,我们这样做:

使用 Web 蓝牙 API 时,如何在 JavaScript 代码中执行类似的配置?

我的 JavaScript 版本:

因安全错误而失败:-(

Uncaught (in promise) DOMException: writeValue() 在标记为排除写入的阻止列表对象上调用。 https://webbluetoothcg.github.io/web-bluetooth/#attacks-on-devices

我理解安全的必要性。但毕竟很多设备都需要对CCCD进行预设。

0 投票
1 回答
720 浏览

javascript - 使用 Web-Bluetooth 的蓝牙设备的信号强度

我希望使用基于 Web 的应用程序(在本例中尝试使用Web-Bluetooth API)来获取信号的蓝牙强度(RSSI 或类似)。据我所知,浏览器不支持此功能(至少)。

结果旨在用于移动设备而不是台式机,但如果有解决方案,我目前还不知道。因为除了它在下载/编译的移动应用程序中工作之外我看不到太多关于它的事情(我想如果这完全无法实现,我将不得不求助于它)。

如果 HTML5 p2p 连接强度也是可获取的值,这也将适用。

也许我完全错过了一些东西,我的谷歌搜索技巧很糟糕,否则任何相关的链接/信息都会受到赞赏:)