ios - 多个区域的 Swift 范围信标

标签 ios swift ibeacon

我正在尝试为多个区域的信标构建一个应用程序。我找到了教程https://mentormate.com/blog/beacon-ranging-ios/我做到了,但我不知道如何更新信标。

最佳答案

教程展示了如何在以下几行中对多个信标区域进行测距:

// 4
let beaconRegions = [CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "F7826DA6-4FA2-4E98-8024-BC5B71E0893E")!, identifier: "Kontakt"),
                     CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "B9407F30-F5F8-466E-AFF9-25556B57FE6D")!, identifier: "Estimote")]

// 5
beaconRegions.forEach(manager!.startRangingBeaconsInRegion)

请注意,beaconRegions 是一个包含两个区域定义的数组。您可以根据需要向此数组添加任意数量的区域定义,以对多个区域进行排序。

代码旨在用检测到的任何新信标更新显示:

beacons.forEach { beacon in
    if let index = beaconList.indexOf({ $0.1.proximityUUID.UUIDString == beacon.proximityUUID.UUIDString && $0.1.major == beacon.major && $0.1.minor == beacon.minor }) {
        beaconList[index] = (region, beacon)
    } else {
        beaconList.append((region, beacon))
    }
}

// 3
tableView.reloadData()

beaconList.append((region, beacon)) 行应该执行此操作。如果它不起作用,请检查您是否在源代码中正确设置了该行和以下 tableView.reloadData()

同时检查您的新信标是否与区域定义之一匹配。

代码似乎没有任何机制来删除从列表中消失的信标。

关于ios - 多个区域的 Swift 范围信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43516410/

相关文章:

ios - 在iOS aarch64应用程序中使用内联汇编器

ios - 执行 segue 时快速终止 View Controller

iphone - 填空模型

android - Azure 上托管的 Asp.net 后端和 Web API Web 服务如何向移动应用程序发送推送通知?

ios - 将 UIImageView 嵌入屏幕顶部或底部的栏小部件中

swift - 使用 iOs 10.0 准备 Segue

swift - 应用程序中可用的框架依赖项的类型扩展

java - 当应用程序关闭时 AltBeacon 继续扫描

Android AltBeacon 库 : how to find the beacon layout?