美文网首页地图定位
地图定位2-iOS8.0定位配置

地图定位2-iOS8.0定位配置

作者: codeTao | 来源:发表于2016-07-19 01:04 被阅读23次

    iOS8.0 之后定位

    1.前台定位

    1.创建位置管理者CLLocationManager,并设置代理

    2.开始定位,调用方法

    locationM.startUpdatingLocation()
    

    3.在CLLocationManagerDelegate的代理方法中获取用户位置信息

    iOS8.0后增加操作:

    4.主动请求前台定位授权,

     locationM.requestWhenInUseAuthorization()
    

    5.在info.plist中填写对应的key(一定要填key)

    key :NSLocationWhenInUseUsageDescription

    问题:

    2.后台定位(需要在前台定位基础上,即先将上面5步做完)

    测试环境: 一定要在iOS 8.0 中运行,不要在iOS9.0上运行!

    方案一:

    • 需要开启后台模式 Location updates

    操作:
    Capabilities -> Background Models -> 选中Location updates 打钩

    • 当在后台获取到用户的位置时,会在顶部显示一个蓝条,提醒用户这个app在不断的获取你的位置信息
    • 当用户点击了这个蓝条,会打开对应的app
    location0.png

    方案二:

    条件:

    • 1.开启前后台定位授权,调用函数 requestAlwaysAuthorization()

    • 2.在info.plist中填写对应的key(一定要填key)

      key : NSLocationAlwaysUsageDescription

    效果:

    • 无论是否勾选后台模式, 都可以获取位置信息. 而且无论前后台, 都不会出现蓝条
    locationM.requestAlwaysAuthorization()
    
    • 只要开启前后台定位授权,默认情况下, 就可以在后台获取用户位置信息, 不需要勾选后台模式location updates

    3. 定位不到, 对应的代理方法不执行

    解决:

    1. 首先,检查运行的模拟器是否是iOS8.0之前的系统版本
    2. 其次,检查模拟器是否设置位置数据
    3. 第三,确保代码无问题(一般都是代理没有设置,或者位置管理器对象是局部变量)
    4. 第四,模拟器BUG, 请将模拟器位置设为None,然后再次设置数据; 或者,重置模拟器

    相关文章

      网友评论

        本文标题:地图定位2-iOS8.0定位配置

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