我一直在开发基于蓝牙的 KaiOS 移动应用程序,其中用户界面是使用 React.js 开发的,并且我创建了一个简单的 javascript 类来管理基于蓝牙的操作,例如扫描、连接/断开连接、数据传输等。我当设备被扫描时,一直试图从 Blemanager.js 类向反应组件发送数据或对象。
以下代码已用于检查具有特定地址的设备,如果找到,则解析承诺,以便将对象发送到 React 组件。现在,我确实想将扫描的设备对象发送到反应组件并检查通知的设备对象是否是必需的,然后停止扫描。如何在 Javascript 中实现这一点。
我是一名 iOS 开发人员,对于 iOS,我正在寻找委托或可观察模式。
startLeScan = () => {
return new Promise((resolve, reject) => {
navigator.mozBluetooth.defaultAdapter.startLeScan([])
.then(function(handlerLE) {
handlerLE.ondevicefound = function(eventLE) {
if (eventLE.device.address === "ed:ec:90:87:5d:86") {
navigator.mozBluetooth.defaultAdapter.stopLeScan(eventLE.target);
console.log('FOUND:', 'Address:', eventLE.device.address, 'Name:', eventLE.device.name, 'Type:', eventLE.device.type);
resolve({"eventLE":eventLE})
}
}
})
.catch(function(e) {
console.log(e);
reject({error: e })
});
})
}