如何在 iPhone/iOS 中以编程方式请求定位服务权限?
在 ios 中,我们可以使用 CLLocationManager 来通过 Swift 请求定位服务权限。
我们借助一个示例项目来完成此项操作。因此,创建一个新项目。首先,我们必须创建一个 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 官方文档,枚举具有以下值。
notDetermined, restricted, denied, authorized, authorizedWhenInUse。
我们看看另外一个示例。
if CLLocationManager.locationServicesEnabled() { switch CLLocationManager.authorizationStatus() { case .authorizedAlways,.authorizedWhenInUse : print("authorized.") case .denied,.restricted,.notDetermined : print("not authorized.") } }
广告