ios-location-listener 0.4.2

ios-location-listener 0.4.2

KuamamatteoKuamaDeveloper维护。



  • Kuama Dev Team

ios-location-listener

该库提供在应用处于后台时读取用户位置的功能。

安装

您可以通过CocoaPods安装ios-location-listener。要安装它,请将以下行添加到您的Podfile中:

pod 'ios-location-listener'

用法

为了使用这个库,您需要

  1. 修改Info.plist文件如下:a)添加新元素键[NSLocationAlwaysAndWhenInUseUsageDescription] = 值["你需要始终访问位置的原因"] b)添加新元素键[NSLocationWhenInUseUsageDescription] = 值["你需要始终访问位置的原因"]

  2. 选择您的项目,选择“签名与能力”选项卡,点击“+”按钮并添加“后台模式”。检查并激活“位置更新”、“后台获取”和“后台处理”。

  3. 验证用户是否已激活GPS服务。

  4. 在您的项目中,创建StreamLocation类的实例和一个AnyCancellable类型的var。

let stream = StreamLocation()
@State var cancellable: AnyCancellable? = nil
let publisher = stream.subject
  1. 当您想开始更新位置流时,只需在流中调用startUpdatingLocations方法,然后从流中读取,如下所示
stream.startUpdatingLocations()
DispatchQueue.main.async{
    self.cancellable = publisher?.sink{
        s in
        print("\(s.coordinate.latitude)-\(s.coordinate.longitude)")
    }
}

注意:即使应用程序被终止,只要没有强制关闭流,此操作将保持活动状态。如果应用程序被终止,位置将在大约150mt时进行监视 - 最小刷新由iOS决定。

  1. 当您想停止更新位置流时,请对stream调用stopUpdates方法,并取消流操作,如下所示
stream.stopUpdates()
DispatchQueue.main.async {
    self.cancellable?.cancel()
    }
  1. 默认情况下,UserNotification中的信息为:"上次位置 lat:(currentLat), long: (currentLong)"。如果您想个性化它,可以在流上调用setAlertMessage方法并传递一个包含您希望显示的自定义消息的字符串。

作者

Kuama 开发团队与✌️

许可证

ios-location-listener 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。