美文网首页
iOS 定位授权,不弹出授权框(高德地图)

iOS 定位授权,不弹出授权框(高德地图)

作者: 唐人街的乞丐 | 来源:发表于2020-07-21 11:34 被阅读0次

我是用的高德地图做的定位
现在大部分手机都是iOS 11 系统以后的,所以不考虑iOS 11以前的系统.
iOS 11 以后
NSLocationAlwaysAndWhenInUseUsageDescription 表示始终允许
NSLocationWhenInUseUsageDescription 表示使用期

但是使用NSLocationAlwaysAndWhenInUseUsageDescription之后系统的定位授权弹框,并不会出现.
高德地图对此作出了处理.

/**
 *  @brief 当plist配置NSLocationAlwaysUsageDescription或者NSLocationAlwaysAndWhenInUseUsageDescription,并且[CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined,会调用代理的此方法。
     此方法实现调用申请后台权限API即可:[locationManager requestAlwaysAuthorization](必须调用,不然无法正常获取定位权限)
 *  @param manager 定位 AMapLocationManager 类。
 *  @param locationManager  需要申请后台定位权限的locationManager。
 *  @since 2.6.2
 */
- (void)amapLocationManager:(AMapLocationManager *)manager doRequireLocationAuth:(CLLocationManager*)locationManager;

所以只需要在代码中加入如下代码,就可以正常弹框了

- (void)amapLocationManager:(AMapLocationManager *)manager doRequireLocationAuth:(CLLocationManager*)locationManager
{
    [locationManager requestAlwaysAuthorization];
}

当然,此方法在AMapLocationManagerDelegate当中,需要设置delegate

相关文章

网友评论

      本文标题:iOS 定位授权,不弹出授权框(高德地图)

      本文链接:https://www.haomeiwen.com/subject/yoqikktx.html