讲解iOS开发中基本的定位功能实现

2020-01-14 16:31:41王振洲

3.如果发现自己的定位服务没有打开,那么应该提醒用户打开定位服务功能。
 
4.定位服务是比较耗电的,如果是做定位服务(没必要实时更新的话),那么定位了用户位置后,应该停止更新位置。
 
 
 
三、用户隐私的保护
 

1.权限设置说明
 
从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权
 
(1)要想获得用户的位置
 
(2)想访问用户的通讯录、日历、相机、相册等
 
当想访问用户的隐私信息时,系统会自动弹出一个对话框让用户授权
讲解iOS开发中基本的定位功能实现
注意:一旦用户选择了“Don't Allow”,意味着你的应用以后就无法使用定位功能,且当用户第一次选择了之后,以后就再也不会提醒进行设置。
 
因此在程序中应该进行判断,如果发现自己的定位服务没有打开,那么应该提醒用户打开定位服务功能。
 
CLLocationManager有个类方法可以判断当前应用的定位功能是否可用+ (BOOL)locationServicesEnabled;
 
  常用的方法:截图告诉用户,应该怎么打开授权
 
  
 
2.开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)
讲解iOS开发中基本的定位功能实现
说明:这里的定位服务是基于网络的。通常定位服务可以是基于GPS、基站或者是网络的。


四、iOS8以来的改进
iOS 8 还提供了更加人性化的定位服务选项。App 的定位服务不再仅仅是关闭或打开,现在,定位服务的启用提供了三个选项,「永不」「使用应用程序期间」和「始终」。同时,考虑到能耗问题,如果一款 App 要求始终能在后台开启定位服务,iOS 8 不仅会在首次打开 App 时主动向你询问,还会在日常使用中弹窗提醒你该 App 一直在后台使用定位服务,并询问你是否继续允许。在iOS7及以前的版本,如果在应用程序中使用定位服务只要在程序中调用startUpdatingLocation方法应用就会询问用户是否允许此应用是否允许使用定位服务,同时在提示过程中可以通过在info.plist中配置通过配置Privacy - Location Usage Description告诉用户使用的目的,同时这个配置是可选的。