BluetoothCharacteristicProperties

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在一些或所有 支持的浏览器 中可用。

实验性:这是一项 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

BluetoothCharacteristicProperties 接口是 Web Bluetooth API 的一部分,它提供了对给定 BluetoothRemoteGATTCharacteristic 有效的操作。

此接口是通过调用 BluetoothRemoteGATTCharacteristic.properties 返回的。

实例属性

authenticatedSignedWrites 只读 实验性

返回一个 boolean 值,如果允许对特征值进行签名写入,则为 true

broadcast 只读 实验性

返回一个 boolean 值,如果允许使用服务器特征配置描述符广播特征值,则为 true

indicate 只读 实验性

返回一个 boolean 值,如果允许对特征值进行带确认的指示,则为 true

notify 只读 实验性

返回一个 boolean 值,如果允许对特征值进行不带确认的通知,则为 true

read 只读 实验性

返回一个 boolean 值,如果允许读取特征值,则为 true

reliableWrite 只读 实验性

返回一个 boolean 值,如果允许对特征进行可靠写入,则为 true

writableAuxiliaries 只读 实验性

返回一个 boolean 值,如果允许对特征描述符进行可靠写入,则为 true

write 只读 实验性

返回一个 boolean 值,如果允许对特征进行带响应的写入,则为 true

writeWithoutResponse 只读 实验性

返回一个 boolean 值,如果允许对特征进行不带响应的写入,则为 true

示例

以下示例展示了如何判断 GATT 特征是否支持值变化通知。

js
let device = await navigator.bluetooth.requestDevice({
  filters: [{ services: ["heart_rate"] }],
});
let gatt = await device.gatt.connect();
let service = await gatt.getPrimaryService("heart_rate");
let characteristic = await service.getCharacteristic("heart_rate_measurement");
if (characteristic.properties.notify) {
  characteristic.addEventListener(
    "characteristicvaluechanged",
    async (event) => {
      console.log(`Received heart rate measurement: ${event.target.value}`);
    },
  );
  await characteristic.startNotifications();
}

规范

规范
Web Bluetooth
# characteristicproperties-interface

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。