从iOS诞生之日起,系统便配带了定位功能,随着无线互联网的需求,移动功能的日新月异的变化,以及iOS的不断升级,定位功能都有不断的更新,自iOS7加入了iBeacon,为无线移动推送提供了更多的变数以后,在iOS8里面定位功能也有不俗的表现。
Core Location framework的变化主要有以下几点:
1. 在定位状态中引入Always 和WhenInUse的概念。
2. 加入Visit monitoring的特性, 这类特性特别适合旅行类别的应用,当用户到达某个指定的区域内,monitor开始作用。
3.加入室内定位技术,增加CLFloor, 在室内可以得到楼层信息。

下面针对这三种分别详细的讲一下使用方法。

a.定位的种类分为:

持续的更新:location, background location, ranging (Always/WhenInUse work)
监视类的更新:region monitoring, significant location changes (Always work)
其中持续的后台位置更新,在程序前台的时候发起的,WhenInUse模式也可以得到正确的地理位置更新,但是如果是类似于从后台被唤起这种服务,则需要使用Always authorization

c. 增加了跳转到privacy的link: UIApplicationOpenSettingsURLString当需要提示关闭了定位功能的用户使用定位的时候可以给通过如下的方式跳转到设定画面:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: UIApplicationOpenSettingsURLString]];

e. kCLAuthorizationStatus,由原来的kCLAuthorizationStatusAuthorized,变为kCLAuthorizationStatusAuthorizedAlways和kCLAuthorizationStatusAuthorizedWhenInUse

具体的使用方法:

A. 决定是否开启后台模式:在Target->capsbilities->backgourn modes
B. 在plist中增加WhenInUse/Always的提示文字,使用NSLocationWhenInUseUsageDescription /NSLocationAlwaysUseUsageDescription
C. 请求不同的服务:
地理位置变化:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestWhenInUseAuthorization];
[self.locationManager startUpdatingLocation]
监听region:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
CLCircularRegion *region = [[CLCircularRegion alloc]...];
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startMonitoringForRegion:region];
获取地理位置并监听region:
在plist里同时设置NSLocationWhenInUseUsageDescription和NSLocationAlwaysUseUsageDescription,调用方式可以参考上面,但是需要注意的是,always的时候可能需要对模式进行判断。
if (authorizationStatus == kCLAuthorizationStatusDenied || authorizationStatus == kCLAuthorizationStatusWhenInUse) {
// TODO:do what you want e.g. goto setting view
}
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startMonitoringForRegion:region];
D: 集成的时候可以使用responsToSelector来避免iOS7.和iOS8api不同引发的错误。
E: 对于只是在MKMapView和Html5中使用的定位同样需要在plist中对提示增加自定义。

@interface CLLocationManager (CLVisitExtensions)

  • (void)startMonitoringVisits NSAVAILABLE(NA, 80); // 开启监视
  • (void)stopMonitoringVisits NSAVAILABLE(NA, 80); // 停止监视

当设备到达指定的地点时,系统会调用下面的方法来通知。

  • (void)locationManager:(CLLocationManager *)manager didVisit:(CLVisit *)visit; 具体可以拿到的信息。 @interface CLVisit : NSObject @property (nonatomic, readonly, copy) NSDate *arrivalDate; @property (nonatomic, readonly, copy) NSDate *departureDate; @property (nonatomic, readonly) CLLocationCoordinate2D coordinate; // center of region @property (nonatomic, readonly) CLLocationAccuracy horizontalAccuracy;

使用功能:

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startUpdatingLocation]

<h5 500;="" color:="" #333333;\"="" style="font-size: 20px; margin: 0px; padding: 0px; font-weight: normal; letter-spacing: 0em; color: rgb(1, 35, 49); word-wrap: break-word !important;">回调:

  • (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { for (CLLocation *newLocation in locations) { CLFloor *floor = newLocation.floor; NSInteger level = floor.level; } }

iOS8 定位新增功能相关推荐

  1. ios8 定位问题解决思路

    ios8 定位问题解决思路: 1.plist文件新加两条变量: a.NSLocationAlwaysUsageDescription=YES;    b.NSLocationWhenInUseUsag ...

  2. Microsoft SharePoint Server 2010 的新增功能

    Microsoft SharePoint Server 2010 包括几个关键的增强和新增功能.重新设计的用户界面中的功能区通过将命令放置到更易于导航的基于任务的选项卡上,来帮助您更快地完成工作.可以 ...

  3. C#6中的新增功能 【Unity3D亲测】

    随着Unity2017的普及,使用.NET 4X的开发者也越来越多了,下面笔者给大家介绍一下在C# 6中的新功能主要是怕自己忘记,2333,有些功能还是很实用的~ 使用Unity版本2018.2.9f ...

  4. Studio One5编曲和音频后期制作音乐编辑软件更新及新增功能介绍

    Studio One5是一款强大的编曲和音频后期制作软件,它为用户提供了"工作室"概念的服务,从乐曲制作.音频录制,到至关重要的后期混音制作,都可以在这里完成. Studio On ...

  5. 微信小程序产品定位及功能介绍

    产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...

  6. Adobe Photoshop CS5 标准版新增功能

    转载请说明来源于"厦门SEO" 本文地址:http://www.96096.cc/Article/161770.html 国外ps教程 2010年4月12日北京时间23时,Adob ...

  7. office2020与2016版的不同_Office2019和Office2016相比不同在哪些地方 Office 2019新增功能体验分享...

    office2019正式版将正式发布,令人大跌眼镜的是必须在win10系统上运行,不知是因为新增3D等功能还是Win10更流畅.Office2019作为Office 2016的续作,比Office 2 ...

  8. SketchUp 2021(草图大师)新增功能

    sketchup 2021 mac版是Google最新推出的一款3D绘图软件,Sketchup Mac版官方网站将它比喻作电子设计中的"铅笔".Google SketchUp可以辅 ...

  9. 苹果手机如何显示定位服务器地址,iOS8定位服务在哪?苹果iPhone6/Plus开启或关闭定位方法图文介绍...

    以下是具体的iPhone6/Plus开启或关闭定位方法,适合所有iOS8系统的iPhone设备. iOS8定位服务在哪? 定位服务关系用户隐私方面的东西,因此iOS8定位服务在iOS8设置中的&quo ...

最新文章

  1. 【Markdown】如何在微信公众号上写markdown的文章
  2. 读取Assets中的文件数据
  3. Windows Phone DataBound ListBox中针对UIElement的事件绑定(Button)
  4. visual studio可以开发python吗_Visual Studio上开发Python六大功能
  5. java drawimage 参数_小程序中canvas的drawImage方法参数使用详解
  6. Python精通-Python入门基础
  7. 供应商否认iPhone 12延迟推出传闻 称生产按计划进行
  8. 华为机试HJ99:自守数(附带提速方案)
  9. android 4k 测试图片,高端4K测试图助4K电视进“测一下”时代
  10. php 微信支付V3接口
  11. python修改文件夹名字
  12. tomcat连接mysql数据库_tomcat连接常用数据库的用法
  13. 2020四川大学计算机考研真题,2020年四川大学计算机考研初试874真题回忆!
  14. 更改谷歌浏览器的安装位置(此方法同样适用于把安在C盘的东西移到其它盘)
  15. dubbo实现原理介绍
  16. vuerouter路由的理解
  17. 大型网站架构 图片服务器分离
  18. python networkx进行最短路径分析_【Python学习系列二十六】networkx库图最短路径求解...
  19. Skewed Join Optimization
  20. MT6589_Tuning SOP - OTPCalibration - MTK物联网在线解答 - 技术论坛

热门文章

  1. 数据分析基础篇---统计学基础
  2. python实现scp功能_如何在Python中进行scp?
  3. IROS2020 论文阅读
  4. 多核 CPU 和多个 CPU 有何区别?与线程的关系?
  5. btcTrade_project
  6. 在线音频巨头的新角逐与新平衡
  7. Pytest setup teardown
  8. 极客时间和极客学院_极客需要告诉我们的父母有关安全可靠地在线购物的信息
  9. 局域网访问文件提示服务器内存不足,“服务器存储空间不足”的问题
  10. Python+Miner解析PDF