要在ios中快速请求位置服务权限,我们可以使用CLLocationManager。
我们将在一个示例项目的帮助下完成此操作。因此,创建一个新项目。首先,我们需要在您的视图控制器中创建一个locationManager对象。
var locationManager = CLLocationManager()
现在,我们首先需要检查设备上是否启用了定位服务。要检查这一点,我们将使用
CLLocationManager.locationServicesEnabled()函数,该函数返回一个布尔值,该值显示设备上的位置服务是否处于活动状态。
if CLLocationManager.locationServicesEnabled() { print("permissions allowed") } else { locationManager.requestAlwaysAuthorization() locationManager.requestWhenInUseAuthorization() }
在上面的示例中,如果启用了位置服务,则我们将打印“ permissions allowed”,否则,我们将请求两种授权,alwaysInUse和WhenInUse授权。
现在,让我们看另一个示例,在该示例中,如果定位服务在设备上处于活动状态,则将查看授予哪种权限。
我们将使用CLLocationManager.authorizationStatus()方法,该方法返回给定的授权类型。它是一个具有5个可能值的枚举。
根据Apple的官方文档,该枚举具有以下值。
未确定,限制,拒绝,授权,使用时授权。
让我们看另一个例子。
if CLLocationManager.locationServicesEnabled() { switch CLLocationManager.authorizationStatus() { case .authorizedAlways,.authorizedWhenInUse : print("authorized.") case .denied,.restricted,.notDetermined : print("非授权。") } }