Как найти маяки с помощью веб-Bluetooth? - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю в PWA, который называется Web Bluetooth, и пытаюсь отфильтровать только маяки и после сопряжения отобразить его значения uuid, major, minor.Итак, вот код сценария:

<script>
         function onClickButton() {
            var known_service = "battery_service";
            return navigator.bluetooth.requestDevice({
                filters: [{ services: [known_service] }]

            })
                .then(() => {

                    navigator.bluetooth.addEventListener('advertisementreceived', event => {
                        var rssi = event.rssi;
                        var appleData = event.manufacturerData.get(0x004C);
                        if (appleData.byteLength != 23 ||
                            appleData.getUint16(0, false) !== 0x0215) {
                            console.log({ isBeacon: false });
                        }
                        var uuidArray = new Uint8Array(appleData.buffer, 2, 16);
                        var major = appleData.getUint16(18, false);
                        var minor = appleData.getUint16(20, false);
                        var txPowerAt1m = -appleData.getInt8(22);
                        console.log({
                            isBeacon: true,
                            uuidArray,
                            major,
                            minor,
                            pathLossVs1m: txPowerAt1m - rssi
                        });
                    });
                })
        }
    </script>

Когда я запускаю код, я получаю сообщение об ошибке, в котором говорится

Невозможно прочитать свойство 'addEventListener' с нулевым значением.

Я пробовал предложения, как добавить window.onload = function, и это не работает.Поэтому, пожалуйста, предложите, как мне это сделать?благодарю вас.

1 Ответ

0 голосов
/ 20 февраля 2019

К сожалению, Chrome не реализовал сканирование Bluetooth в API WebBluetoorh ни на одной платформе.Подробности см. На странице состояния:

https://github.com/WebBluetoothCG/web-bluetooth/blob/master/implementation-status.md#scanning-api

Если / до тех пор, пока это не изменится, это означает, что вы не можете обнаружить маяки с помощью WebBluetooth.

...