大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
iOS开发中,定位普遍有两种手段
创新互联是一家集网站建设,兴业企业网站建设,兴业品牌网站建设,网站定制,兴业网站建设报价,网络营销,网络优化,兴业网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
1、系统定位,运用CLLocationManager这个类
在plist文件中写入这两参数
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription
适配iOS8,iOS9
if (iOSVersion=8) {
[_locationManager requestWhenInUseAuthorization];//使用程序其间允许访问位置数据(iOS8定位需要)
}
后台定位写入
// if ([[[UIDevice currentDevice] systemVersion] floatValue] = 8)
// {
// [_locationManager requestAlwaysAuthorization];//在后台也可定位
// }
// else if ([[[UIDevice currentDevice] systemVersion]floatValue] = 9 )
// {
// _locationManager.allowsBackgroundLocationUpdates = YES;
// }
2.通过百度地图,高德地图实施定位,具体差不多,不多写了。
1、首先找到手机主屏上的“设置”图标,点击打开。
2、在设置列表中找到“隐私”选项,点击进入。
3、在隐私列表中找到“定位”服务,点击进入。
4、随后即可看到定位服务的开关
iOS8以前使用CoreLocation定位
1、首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import CoreLocation/CoreLocation.h
1
@property (nonatomic, strong) CLLocationManager *locationManager;
2、初始化CLLocationManager并开始定位
self.locationManager = [[CLLocationManager alloc]init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10;
[_locationManager startUpdatingLocation];
3、实现CLLocationManagerDelegate的代理方法
(1)获取到位置数据,返回的是一个CLLocation的数组,一般使用其中的一个
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *currLocation = [locations lastObject];
NSLog(@"经度=%f 纬度=%f 高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);
}
(2)获取用户位置数据失败的回调方法,在此通知用户
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
if ([error code] == kCLErrorDenied)
{
//访问被拒绝
}
if ([error code] == kCLErrorLocationUnknown) {
//无法获取位置信息
}
}
4、在viewWillDisappear关闭定位
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[_locationManager stopUpdatingLocation];
}
iOS8中使用CoreLocation定位
1、在使用CoreLocation前需要调用如下函数【iOS8专用】:
iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:
(1)始终允许访问位置信息
- (void)requestAlwaysAuthorization;
(2)使用应用程序期间允许访问位置数据
- (void)requestWhenInUseAuthorization;
示例如下:
self.locationManager = [[CLLocationManager alloc]init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10;
[_locationManager requestAlwaysAuthorization];//添加这句
[_locationManager startUpdatingLocation];
2、在Info.plist文件中添加如下配置:
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription
ios8定位系统服务设置方法如下:
1、打开“设置”进入里面。
2、然后进入“隐私”里面,点击“定位服务”进入开启就可以了。
3、iOS8系统定位服务在给人们带来方便的同时,也带来一些负面影响,如很多应用开启定位服务会给用户隐私造成一定影响。iOS8系统提供了更加人性化的定位服务选项,不再是关闭或打开这么简单,新设置了“永不”“使用应用程序期间”和“始终”三种选项,用户可以根据需要灵活设置。如一些根本无需定位服务的应用,可以设置“永不”使用。
来自帮客之家的答案,希望帮到你:
iOS8中使用CoreLocation定位
1、在使用CoreLocation前需要调用如下函数【iOS8专用】:
iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:
(1)始终允许访问位置信息
- (void)requestAlwaysAuthorization;
(2)使用应用程序期间允许访问位置数据
- (void)requestWhenInUseAuthorization;
示例如下:
self.locationManager = [[CLLocationManager alloc]init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10;
[_locationManager requestAlwaysAuthorization];
//添加这句[_locationManager startUpdatingLocation];
2、在Info.plist文件中添加如下配置:
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription