Ionic framework 如何获得离子3中最接近的beaon
目前我正在使用iBeacons,到目前为止,我已经成功地扫描并在屏幕上显示了它们。但是后来我被告知只扫描并显示最近的一个(最近的一个),而忽略所有其他的。有人能给我一个粗略的想法,如何在我拥有的一堆信标中找到最近的信标吗 我认为我不能在这种情况下使用接近度和准确性,因为它们经常波动 基本上,我还没有弄明白如何使用逻辑:Ionic framework 如何获得离子3中最接近的beaon,ionic-framework,ibeacon,ionic-native,proximity,Ionic Framework,Ibeacon,Ionic Native,Proximity,目前我正在使用iBeacons,到目前为止,我已经成功地扫描并在屏幕上显示了它们。但是后来我被告知只扫描并显示最近的一个(最近的一个),而忽略所有其他的。有人能给我一个粗略的想法,如何在我拥有的一堆信标中找到最近的信标吗 我认为我不能在这种情况下使用接近度和准确性,因为它们经常波动 基本上,我还没有弄明白如何使用逻辑: onBeaconsDiscovered() { this.delegate.didRangeBeaconsInRegion().subscribe( data =>
onBeaconsDiscovered() {
this.delegate.didRangeBeaconsInRegion().subscribe( data => {
if (data.beacons !== null) {
let nearestBeacon = // { code for detecting the nearest beacon }
// then show up a notification / alert / toast ...
}
});
}
请帮忙!我很欣赏每一个想法。您可以在这里看到我关于如何在本机Swift代码中执行此操作的答案: 下面是该Swift代码到JavaScript的直接翻译:
var closestBeacon = null;
for (var beacon in data.beacons) {
if (beacon.rssi < 0 && closestBeacon != null && beacon.rssi > closestBeacon.rssi) {
closestBeacon = beacon;
}
}
然后,在对信标进行任何处理之前,根据信标标识符构造一个字符串键,并确保它以前未触发:
var beaconIdentifiers = beacon.uuid + " " + beacon.major + " " + beacon.minor;
if (triggeredBeacons[beaconIdentifiers] == true) {
// beacon has already triggered. Ignore it
}
else {
triggeredBeacons[beaconIdentifiers] = true;
// Put your beacon processing here
}
嗨,谢谢你的解决方案。是的,我也有回拨问题。那么,我们有什么方法可以暂时“暂停”该回调吗?典型的方法是跟踪您已经在globalish范围的对象中处理的所有信标。有关示例,请参见我的编辑。
var beaconIdentifiers = beacon.uuid + " " + beacon.major + " " + beacon.minor;
if (triggeredBeacons[beaconIdentifiers] == true) {
// beacon has already triggered. Ignore it
}
else {
triggeredBeacons[beaconIdentifiers] = true;
// Put your beacon processing here
}