4

我正在构建一个使用地理围栏的应用程序,但我意识到 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 创建自定义功能,例如监控多边形等。

应该如何开始实施自定义区域?

谢谢!

4

0 回答 0