美文网首页
高德地图6.8.0定位修改的修复方法

高德地图6.8.0定位修改的修复方法

作者: 蝴蝶之梦天使 | 来源:发表于2019-07-22 16:45 被阅读0次
    高德地图

    高德地图
    6.8.0或以上版本
    开启后台定位

    问题

    如果APP中使用了高德地图并且具有后台定位功能,然后在3D地图升级到6.8.0或以上版本的时候,会发现新安装的APP没有定位授权提示框!!!并且在日志中发现[AMapLocationKit] 要在iOS 11及以上版本使用后台定位服务, 需要实现amapLocationManager:doRequireLocationAuth: 代理方法
    查看SDK的更新日志:

    高德地图iOS SDK(3D地图) V6.8.0             2019-04-16
    解决问题
    针对App Store关于“申请后台定位权限”的新审核要求,地图SDK内去掉定位的requestAlwaysAuthorization请求,用户可通过mapViewRequireLocationAuth回调来设置requestAlwaysAuthorization;
    
    修复多实例下设置路况颜色可能会导致context冲突的问题;
    
    修复瓦片图读取已损坏数据导致的crash问题;
    
     解决delegate的warning问题。
    

    解决方法

    实现mapViewRequireLocationAuth方法

    - (void)mapViewRequireLocationAuth:(CLLocationManager *)locationManager
    {
        [locationManager requestAlwaysAuthorization];
    }
    

    填坑

    如果只是那么简单的解决方法,就不会浪费那么多时间去定位了。还有重要一点就是,设置delegate必须在设置showsUserLocation之前:

    _mapView.delegate = self;
    _mapView.showsUserLocation = YES;
    _mapView.userTrackingMode = MAUserTrackingModeFollow;
    

    如果delegate设置放此两个属性设置的后面,那么一直会提示”[AMapLocationKit] 要在iOS 11及以上版本使用后台定位服务, 需要实现amapLocationManager:doRequireLocationAuth: 代理方法“。并且么有任何提示也不会定位。

    Done

    下载了3D地图的Demo后才恍然大悟,一直在尝试不同的方案,但是一直在提示[AMapLocationKit] 要在iOS 11及以上版本使用后台定位服务, 需要实现amapLocationManager:doRequireLocationAuth: 代理方法

    // END 希望能够帮到有这个问题的小伙伴。

    相关文章

      网友评论

          本文标题:高德地图6.8.0定位修改的修复方法

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