要运行示例项目,请克隆仓库,并首先从 Example 目录中运行 pod install
要获取附近的 Eddystone 对象,只需启动扫描器
Eddystone.Scanner.start(self)
然后得到一组附近的对象
Eddystone.Scanner.nearby
要启动扫描器,您需要提供一个 Eddystone.ScannerDelegate
代理,它将在附近对象发生变化时被通知
public protocol ScannerDelegate {
func eddystoneNearbyDidChange()
}
Eddystone.Scaner.nearby
返回的 Eddystone.Generic
类对象包含从三种 Eddystone 框架类型和基本信标信息收集的多个属性。
public var signalStrength: Beacon.SignalStrength
public var identifier: String
public var url: NSURL?
public var namespace: String?
public var instance: String?
public var uid: String?
public var battery: Double?
public var temperature: Double?
public var advertisementCount: Int?
public var onTime: NSTimeInterval?
由于 Eddystone 信标可能广播一个或多个框架类型,因此 Eddystone.Generic
类中的大部分属性都是可选的。如果您的应用程序专用于 Eddystone-URL 或 Eddystone-UID 框架类型,则可以使用以下 Eddystone.Scaner
属性。
注意,这些方法返回的对象具有非可选属性。
通过以下方式获取 Eddystone.Url
对象的数组
Eddystone.Scanner.nearbyUrls
Eddystone.Url
对象有以下属性
public var signalStrength: Beacon.SignalStrength
public var identifier: String
public var url: NSURL
通过以下方式获取 Eddystone.Uid
对象的数组
Eddystone.Scanner.nearbyUids
Eddystone.Uid
对象有以下属性
public var signalStrength: Beacon.SignalStrength
public var identifier: String
public var namespace: String
public var instance: String
public var uid: String
Eddystone 模块的日志在调试您的应用程序时可能很有用。要启用日志,请使用以下行。
Eddystone.logging = true
随着 Eddystone 信标更接近或更远离设备,它们需要在屏幕上重新排列。以下 gist 使重新排列 UITableView
的数据源变得容易。
ExampleViewController: UIViewController, Eddystone.ScannerDelegate {
var urls = Eddystone.Scanner.nearbyUrls
var previousUrls: [Eddystone.Url] = []
func eddystoneNearbyDidChange() {
self.previousUrls = self.urls
self.urls = Eddystone.Scanner.nearbyUrls
self.mainTableView.switchDataSourceFrom(self.previousUrls, to: self.urls, withAnimation: .Top)
}
}
https://gist.github.com/tannernelson/6d140c5ce2a701e4b710
显示Eddystone对象的相对信号强度可以帮助用户理解他们距离信标有多近。这个cocoapod为您提供了一个iOS 7风格的信号强度视图,您可以在应用程序的任何位置添加此视图。
https://cocoapods.org.cn/pods/SignalStrength
Eddystone使用CoreBluetooth
Eddystone通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod "Eddystone"
Eddystone的cocoapod附带了示例iOS项目,展示了各种方法调用如何在真实应用程序中工作。示例应用程序还包括上述的额外资源。
Tanner Nelson, [email protected]
Eddystone在MIT许可下可用。有关更多信息,请参阅LICENSE文件。