`
wsjiang
  • 浏览: 394184 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[转] iOS8 定位新增功能

阅读更多

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. 增加了跳转到privacylink: UIApplicationOpenSettingsURLString当需要提示关闭了定位功能的用户使用定位的时候可以给通过如下的方式跳转到设定画面:

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

e. kCLAuthorizationStatus,由原来的kCLAuthorizationStatusAuthorized,变为kCLAuthorizationStatusAuthorizedAlwayskCLAuthorizationStatusAuthorizedWhenInUse

具体的使用方法:

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里同时设置NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUseUsageDescription,调用方式可以参考上面,但是需要注意的是,always的时候可能需要对模式进行判断。
if (authorizationStatus == kCLAuthorizationStatusDenied || authorizationStatus == kCLAuthorizationStatusWhenInUse) {
// TODOdo what you want e.g. goto setting view
}
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startMonitoringForRegion:region];
D: 集成的时候可以使用responsToSelector来避免iOS7.iOS8api不同引发的错误。
E: 对于只是在MKMapViewHtml5中使用的定位同样需要在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; } }
分享到:
评论

相关推荐

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

    在iOS开发中,实现基本的定位功能是许多应用的核心需求,尤其对于导航、社交和生活服务类应用来说至关重要。本教程将介绍如何使用Objective-C来实现这一功能,主要涉及`CLLocationManager`、`CLLocation`和`...

    iOS定位的demo

    总之,“iOS定位的demo”项目应该包含了以上提到的所有知识点,并通过实际代码展示了如何在应用中集成和使用这些功能。通过学习和分析这个demo,开发者可以掌握iOS定位服务的基本用法,并为自己的应用添加相关功能。

    ios 地图定位 demo

    在iOS开发中,地图定位是一项基础且重要的功能,它允许用户获取当前位置信息并进行相关操作。本Demo,"ios 地图定位 demo",旨在帮助开发者了解如何在iOS应用中集成地图定位服务,以实现基本的地图定位功能。下面将...

    ios8后台持续定位

    在iOS系统中,后台定位是一项重要的功能,尤其对于那些依赖实时地理位置信息的应用,如导航、健身追踪或社交应用。在iOS 8版本中,苹果公司对后台定位服务进行了优化,以提供更稳定、高效且节能的体验。以下将详细...

    IOS map 定位 Demo

    这个“iOS Map 定位 Demo”提供了实现这一功能的实例代码,帮助开发者理解如何在自己的应用中集成苹果的地图服务并获取用户的位置信息。接下来,我们将深入探讨相关知识点。 首先,我们需要导入必要的框架。`...

    ios-地图定位签到及离线签到功能实现.zip

    在iOS应用开发中,地图定位和签到功能是常见的需求,尤其在企业级应用中,如钉钉。本文将深入探讨如何实现iOS上的地图定位签到及离线签到功能,基于提供的资源"ios-地图定位签到及离线签到功能实现.zip"。 首先,...

    ios实时定位

    一、iOS定位服务基础 1. Core Location框架:苹果提供了一个名为Core Location的框架,它是iOS、watchOS和tvOS中处理地理位置信息的核心组件。它允许开发者获取用户的实时位置、方向、速度等信息,同时还能管理位置...

    ios自带的定位

    在iOS开发中,苹果提供了内置的Core Location框架,使得开发者能够轻松地集成定位功能到自己的应用中。这个框架允许我们获取设备的地理位置信息,包括经纬度、海拔、速度和方向等。下面我们将深入探讨如何使用iOS...

    ios地图定位导航

    一、iOS定位服务 iOS设备支持GPS、Wi-Fi、蜂窝数据和iBeacon等多种定位技术,通过Core Location框架提供服务。开发者可以使用Core Location框架获取用户的位置信息,包括经纬度坐标、海拔、速度和方向。为了保护用户...

    location-cleaned 定位ios15.0 最新驱动-iOS专用

    iOS的定位服务是系统提供的一项核心功能,允许应用程序获取用户的地理位置信息。在iOS 15.0中,苹果进一步强化了对用户隐私的保护,同时提升了定位服务的准确性。location-cleaned驱动就是这一改进的关键,它在保证...

    ios-iOS 系统定位CLLocation,周边范围查询,平均速度.zip

    在iOS系统中,地理位置服务是通过Core Location框架提供的,它允许开发者获取用户的实时位置信息,进行定位、跟踪以及路径规划等功能。在这个“ios-iOS 系统定位CLLocation,周边范围查询,平均速度.zip”压缩包中,...

    iOS 地图定位 经纬度

    在iOS开发中,地图定位是不可或缺的功能之一,它允许用户获取到设备的当前地理位置信息,如城市、街道以及精确的经纬度坐标。本教程将详细讲解如何在iOS应用中实现这一功能。 首先,我们需要导入CoreLocation框架,...

    ios-简易定位器.zip

    在iOS开发中,实现“简易定位器”功能主要涉及到苹果的Core Location框架,这是一个用于获取设备地理位置信息的强大工具。这个“ios-简易定位器.zip”压缩包可能包含了一个简单的iOS应用示例,用于演示如何使用Core ...

    IOS GPS定位

    在iOS开发中,GPS定位是实现许多应用功能的关键部分,比如地图导航、位置分享、周边服务搜索等。本文将深入探讨如何在iOS中利用GPS获取地理位置的经纬度、当前所在城市以及详细地址。 首先,我们需要引入核心位置...

    ios 自带的定位。

    在iOS开发中,苹果提供了内置的定位服务框架Core Location,使得开发者可以轻松地在应用程序中集成定位功能。本文将深入探讨iOS自带的定位服务,并基于提供的`mapViewController`这一文件名称,推测这是一个与地图和...

    IOS定位并转换成具体城市信息

    在iOS开发中,获取设备的地理位置信息是一项常用的功能,它涉及到多个系统框架和服务,包括Core Location框架。这个压缩包文件“CustomLocation”可能包含了自定义定位的实现代码或示例,帮助开发者理解如何准确地...

    location-cleaned 定位 ios14.1 最新驱动-iOS专用

    在iOS系统中,定位服务是应用获取用户地理位置信息的关键功能,对于导航、社交、天气预报等各类应用都至关重要。"location-cleaned 定位 ios14.1 最新驱动-iOS专用"是一个针对iOS 14.1版本的特定驱动程序,主要负责...

    location-cleaned 定位ios14.0 最新驱动-iOS专用

    在iOS系统中,定位服务是不可或缺的一个功能,它允许应用获取设备的地理位置信息,从而提供各种基于位置的服务。"location-cleaned"项目针对iOS 14.0版本提供了最新的驱动程序,确保用户能够准确、安全地使用定位...

    Xcode模拟器下载地址(iOS 8 - iOS 12)

    ### Xcode模拟器下载地址(iOS 8 - iOS 12) #### 一、Xcode模拟器概述 Xcode 是苹果公司为开发者提供的官方集成开发环境(IDE),它支持多种编程语言,包括Objective-C、Swift等,主要用于开发iOS、macOS、...

    ios 百度地图定位

    在iOS开发中,集成百度地图服务是一个常见的需求,特别是在实现定位和反地理编码功能时。以下将详细讲解如何实现这个过程。 首先,我们要在百度地图开放平台(http://lbsyun.baidu.com/)注册一个账号,并创建一个...

Global site tag (gtag.js) - Google Analytics