Web Bluetooth - ошибка при подключении мобильного устройства к веб-браузеру через Bluetooth

Я пытаюсь получить данные мобильного запроса в веб-браузер (ноутбук) через Bluetooth, поэтому мой первый шаг - подключить систему Bluetooth к веб-браузеру, но получаю сообщение об ошибке, используя приведенный ниже код. или есть ли другой способ подключить мобильный телефон к веб-браузеру через bluetooth для передачи данных?

navigator.bluetooth.requestDevice().then(
function (d){console.log("found Device !!");}, 
function (e){console.log("Oh no !!",e);});

Я пробовал код выше в хроме.

Сообщение об ошибке :

TypeError: Failed to execute 'requestDevice' on 'Bluetooth': 1 argument required, but only 0 present

person 151291    schedule 09.02.2017    source источник
comment
Если вы сообщите нам сообщение об ошибке, мы сможем больше, чем просто предположить.   -  person Constantin Groß    schedule 09.02.2017
comment
@Connum - Да, это был заголовок, я обновился.   -  person 151291    schedule 09.02.2017
comment
Вам необходимо предоставить объект options аргументу метода requestDevice. Документация на developer.mozilla.org/en-US/docs/ Интернет / API / Bluetooth / и googlechrome.github.io /samples/web-bluetooth/device-info.html должно помочь вам начать работу в правильном направлении.   -  person Vivek Pradhan    schedule 09.02.2017


Ответы (2)


Возможно, вы захотите прочитать https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web, где показаны все обязательные параметры, которые вы должны передать:

Например, запросить устройства Bluetooth, рекламирующие службу Bluetooth GATT Battery Service, очень просто:

navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] })
.then(device => { /* ... */ })
.catch(error => { console.log(error); });

Если ваша служба Bluetooth GATT не входит в список стандартизированных служб Bluetooth GATT, вы можете предоставить либо полный UUID Bluetooth, либо короткую 16- или 32-разрядную форму.

navigator.bluetooth.requestDevice({
  filters: [{
    services: [0x1234, 0x12345678, '99999999-0000-1000-8000-00805f9b34fb']
  }]
})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });

Вы также можете запрашивать устройства Bluetooth на основе имени устройства, объявляемого с помощью клавиши name Filters, или даже префикса этого имени с помощью клавиши namePrefix Filters. Обратите внимание, что в этом случае вам также потребуется определить ключ optionalServices для доступа к некоторым службам. Если вы этого не сделаете, вы получите сообщение об ошибке позже при попытке получить к ним доступ.

navigator.bluetooth.requestDevice({
  filters: [{
    name: 'Francois robot'
  }],
  optionalServices: ['battery_service']
})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
person François Beaufort    schedule 09.02.2017

Как указано в сообщении об ошибке, вам необходимо предоставить объект параметров методу requestDevice(options). См. https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/requestDevice

person Constantin Groß    schedule 09.02.2017