Why do I get "Uncaught TypeError: navigator.bluetooth.getAvailability is not a function"

Why do I get "Uncaught TypeError: navigator.bluetooth.getAvailability is not a function"

以下代码在 Chrome 版本 59.0.3071.134(官方构建)(64 位)的 Chromebook 上执行生成 "Uncaught TypeError: navigator.bluetooth.getAvailability is not a function"。知道为什么吗?

bluetoothle.checkBluetoothAvailable = function() {
  console.log("checkBluetoothAvailable");
  navigator.bluetooth.getAvailability().then(isAvailable => {
    document.getElementById('btn_discover').hidden = !isAvailable;
    if (!isAvailable) {
      document.getElementById('message').innerHTML = 'Bluetooth is not available';
    }
  });
  navigator.bluetooth.addEventListener('availabilitychanged', e => {
    document.getElementById('btn_discover').hidden = !e.value;
    if (!e.value) {
      document.getElementById('message').innerHTML = 'Bluetooth is not available';
    } else {
      document.getElementById('message').innerHTML = 'Bluetooth is available';
    }
  });
}

getAvailability 未实现。它是指定的,因此尝试它并期望它起作用是有意义的。

https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/implementation-status.md 更详细地列出了已实施的内容。

并且,在规范中您会发现某些部分的背景,例如 getAvailability 包括 "This section is not stable." 和背景文本 "Unstable"。