iOS14——位置权限单独申请精准定位使用方法

踩的坑记录一下,搜了好多地方都没有搜到

1. CLLocationManager类

定位新增属性字段:CLAccuracyAuthorization用于判定用户开启的定位方案

typedef NS_ENUM(NSInteger, CLAccuracyAuthorization) {
	// This application has the user's permission to receive accurate location information.
	// 这个是精准定位
	CLAccuracyAuthorizationFullAccuracy,

	// The user has chosen to grant this application access to location information with reduced accuracy.
	// Region monitoring and beacon ranging are not available to the application.  Other CoreLocation APIs
	// are available with reduced accuracy.

	// Location estimates will have a horizontalAccuracy on the order of about 5km.  To achieve the
	// reduction in accuracy, CoreLocation will snap location estimates to a nearby point which represents
	// the region the device is in.  Furthermore, CoreLocation will reduce the rate at which location
	// estimates are produced.  Applications should be prepared to receive locations that are up to 20
	// minutes old.
	// 这个是模糊定位
	CLAccuracyAuthorizationReducedAccuracy,
};

2. 根据字段去进一步获取定位

通过字段判断可以明确当前用户开启的定位,如果是模糊定位
self.locationManager.accuracyAuthorization == CLAccuracyAuthorizationReducedAccuracy
申请精准定位

[self.locationManager requestTemporaryFullAccuracyAuthorizationWithPurposeKey:@"newlocation" completion:^(NSError *error) {
           }];

还有另一个API,可以自己查看。

还有配置plist文件,这块网上都很全

3. 注意

如果用户一开始拒绝定位,那么这些方法都不起作用。

你可能感兴趣的:(iOS开发)