我正在构建一个使用地理围栏的应用程序,但我意识到 CLRegion 有很多限制,例如:
该位置授权状态必须为 .authorizedAlways 才能使区域监控正常工作。
只能监控圆形区域
这限制了可以使用区域监控应用的功能。然而,在做了一些研究之后,我发现有办法通过创建一个自定义的 CLRegion 类来改变这种行为。
老实说,我不知道该怎么做或从哪里开始。有没有人对这样的自定义 CLRegion 类如何允许自定义地理围栏有任何建议?
appcoda 上有一个教程简要地谈到了这一点,但根本没有深入,你可以在这里找到它:
https://www.appcoda.com/geo-targeting-ios/
他们建议从以下协议开始:
protocol RegionProtocol {
var coordinate: CLLocation {get}
var radius: CLLocationDistance {get}
var identifier: String {get}
func updateRegion()
}
protocol RegionDelegateProtocol {
func didEnterRegion()
func didExitRegion()
}
从这些可以为 CLRegions 创建自定义功能,例如监控多边形等。
应该如何开始实施自定义区域?
谢谢!