iOS開發(fā)中,定位普遍有兩種手段
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),興業(yè)企業(yè)網(wǎng)站建設(shè),興業(yè)品牌網(wǎng)站建設(shè),網(wǎng)站定制,興業(yè)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,興業(yè)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1、系統(tǒng)定位,運(yùn)用CLLocationManager這個(gè)類
在plist文件中寫入這兩參數(shù)
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription
適配iOS8,iOS9
if (iOSVersion=8) {
[_locationManager requestWhenInUseAuthorization];//使用程序其間允許訪問位置數(shù)據(jù)(iOS8定位需要)
}
后臺(tái)定位寫入
// if ([[[UIDevice currentDevice] systemVersion] floatValue] = 8)
// {
// [_locationManager requestAlwaysAuthorization];//在后臺(tái)也可定位
// }
// else if ([[[UIDevice currentDevice] systemVersion]floatValue] = 9 )
// {
// _locationManager.allowsBackgroundLocationUpdates = YES;
// }
2.通過百度地圖,高德地圖實(shí)施定位,具體差不多,不多寫了。
1、首先找到手機(jī)主屏上的“設(shè)置”圖標(biāo),點(diǎn)擊打開。
2、在設(shè)置列表中找到“隱私”選項(xiàng),點(diǎn)擊進(jìn)入。
3、在隱私列表中找到“定位”服務(wù),點(diǎn)擊進(jìn)入。
4、隨后即可看到定位服務(wù)的開關(guān)
iOS8以前使用CoreLocation定位
1、首先定義一個(gè)全局的變量用來(lái)記錄CLLocationManager對(duì)象,引入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、實(shí)現(xiàn)CLLocationManagerDelegate的代理方法
(1)獲取到位置數(shù)據(jù),返回的是一個(gè)CLLocation的數(shù)組,一般使用其中的一個(gè)
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *currLocation = [locations lastObject];
NSLog(@"經(jīng)度=%f 緯度=%f 高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);
}
(2)獲取用戶位置數(shù)據(jù)失敗的回調(diào)方法,在此通知用戶
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
if ([error code] == kCLErrorDenied)
{
//訪問被拒絕
}
if ([error code] == kCLErrorLocationUnknown) {
//無(wú)法獲取位置信息
}
}
4、在viewWillDisappear關(guān)閉定位
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[_locationManager stopUpdatingLocation];
}
iOS8中使用CoreLocation定位
1、在使用CoreLocation前需要調(diào)用如下函數(shù)【iOS8專用】:
iOS8對(duì)定位進(jìn)行了一些修改,其中包括定位授權(quán)的方法,CLLocationManager增加了下面的兩個(gè)方法:
(1)始終允許訪問位置信息
- (void)requestAlwaysAuthorization;
(2)使用應(yīng)用程序期間允許訪問位置數(shù)據(jù)
- (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定位系統(tǒng)服務(wù)設(shè)置方法如下:
1、打開“設(shè)置”進(jìn)入里面。
2、然后進(jìn)入“隱私”里面,點(diǎn)擊“定位服務(wù)”進(jìn)入開啟就可以了。
3、iOS8系統(tǒng)定位服務(wù)在給人們帶來(lái)方便的同時(shí),也帶來(lái)一些負(fù)面影響,如很多應(yīng)用開啟定位服務(wù)會(huì)給用戶隱私造成一定影響。iOS8系統(tǒng)提供了更加人性化的定位服務(wù)選項(xiàng),不再是關(guān)閉或打開這么簡(jiǎn)單,新設(shè)置了“永不”“使用應(yīng)用程序期間”和“始終”三種選項(xiàng),用戶可以根據(jù)需要靈活設(shè)置。如一些根本無(wú)需定位服務(wù)的應(yīng)用,可以設(shè)置“永不”使用。
來(lái)自幫客之家的答案,希望幫到你:
iOS8中使用CoreLocation定位
1、在使用CoreLocation前需要調(diào)用如下函數(shù)【iOS8專用】:
iOS8對(duì)定位進(jìn)行了一些修改,其中包括定位授權(quán)的方法,CLLocationManager增加了下面的兩個(gè)方法:
(1)始終允許訪問位置信息
- (void)requestAlwaysAuthorization;
(2)使用應(yīng)用程序期間允許訪問位置數(shù)據(jù)
- (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