Я пытаюсь использовать Meteor и этот плагин Cordova - https://github.com/don/cordova-plugin-ble-central — добавлен в мой проект с помощью meteor add cordova
для подключения к устройству Bluetooth LE (TI Sensortag). Все, что я хочу сделать для начала, это при нажатии на ссылку подключиться к устройству и показать сообщение.
У меня есть следующий код в разделе events
моего шаблона javascript.
Template.measure.events({'click [data-action=scan-connect-stream]':
function(event, template) {
event.preventDefault();
if (Meteor.isCordova) {
Meteor.startup(function () {
ble.connect('24:09:00:DE:00:42',
function(){
alert('Connect success');
return;
},
function(){
alert('Connect failed');
return;
});
});
}
}
});
Моя проблема в том, что иногда код работает, и я получаю предупреждение «Успех подключения», но чаще всего он не может подключиться и показывает предупреждение «Ошибка подключения». До того, как я добавил операторы return
в обратные вызовы успеха и неудачи, он вообще не работал.
Я отлаживаю это на устройстве Android (meteor run android-device --verbose
) и вижу через adb logcat
, что событие BLE Connect в плагине Cordova запускается, но затем не подключается. Я получаю ту же проблему при отладке на двух разных телефонах и при использовании устройства BLE, которое не является TI Sensortag, поэтому я предполагаю, что это проблема с тем, как плагин взаимодействует с Meteor (возможно, Meteor не ждет достаточно долго для успешного обратного вызова?).
Кто-нибудь успешно использовал этот плагин с Meteor или кто-нибудь может подсказать, что я делаю неправильно? Должен ли я попытаться обернуть его в пакет Meteor или каким-либо образом я могу дать плагину больше времени для ответа до того, как сработают успешные или неудачные обратные вызовы? Любая помощь приветствуется!