ReactiveLocation 4.2.0

ReactiveLocation 4.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2023年1月
SPM支持 SPM

由以下开发者维护:Tomas KohoutJan MísařDominik AckeeJakub OlejníkAckee Github



  • Ackee

ackee|ReactiveLocation

Build Version License Platform

用于观察位置的 ReactiveSwift 包装器

我们的包装器会自动请求权限。它会通过检查您的应用程序的 Info.plist 来确定您的应用程序需要哪种类型的权限。

通过使用我们的包装器,您可以使用单个 CLLocationManager 实例,并且它会根据观察者的数量自动开始和停止更新位置,这样您的应用程序就不会无谓地耗尽设备电量。

示例用法

例如用法,您可以查看本存储库中包含的示例。

对于最简单的情况,您提供了 shared 实例

ReactiveLocation.shared.locationProducer().startWithValues { location in
    print(location)
}

如果您需要为您的 CLLocationManager 获取更多不同的设置,您可以通过创建新的 ReactiveLocation 实例并将您想要的设置添加到提供的 locationManager(但您需要确保该实例在您需要时保持活跃)来简单地创建额外的实例。

let reactiveLocation = ReactiveLocation()
reactiveLocation.locationManager.distanceFilter = 100 // do your custom setup
reactiveLocation.locationProducer().startWithValues {
    print($0)
}
// store `reactiveLocation` instance somewhere

测试支持

ReactiveLocation 的所有功能都封装在 ReactiveLocationService 协议中,因此您应在项目中使用此协议作为依赖,这样您就可以注入任何您喜欢的测试实现。

安装

ReactiveLocation可以通过Carthage获得,将其添加到Cartfile中效果很好。

github "AckeeCZ/ReactiveLocation"

如果您不熟悉Carthage,我们也支持Cocoapods。

pod "ReactiveLocation"

如果您不熟悉任何依赖管理器,您可以手动集成。😎但是请注意,我们依赖于ReactiveSwift

fork此仓库

如果您在项目中使用ReactiveLocation,请给我们发推文至@ackeecz或在Github上给我们点个赞。我们都非常乐意听到您的反馈!

分享就是关怀

当决定开源内部项目时,我们在这个#sharingiscaring操作中开源了这个工具和仓库。

作者

Ackee团队

许可证

ReactiveLocation在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。