您的位置:首页 > 移动开发

iOS 判断APP是否打开定位,并实现直接跳转打开定位

2017-11-30 10:15 866 查看
首先我们要向导入一个官方提供的库

#import <CoreLocation/CLLocationManager.h>
导入以后就可以写代码了,当然了为了方便起见,个人建议将下面的方法封装成一个工具类,这样的话在任何位置都可以调用
我将该方法封装成了+方法(类方法),类名:NSXYCToolObject :NSObject

.h

/*

 * 判断是否打开定位

 */

+ (BOOL)determineWhetherTheAPPOpensTheLocation;

.m

#pragma mark 判断是否打开定位

+(BOOL)determineWhetherTheAPPOpensTheLocation{

    if ([CLLocationManagerlocationServicesEnabled]
&& ([CLLocationManagerauthorizationStatus] ==kCLAuthorizationStatusAuthorizedWhenInUse
|| [CLLocationManagerauthorizationStatus] ==kCLAuthorizationStatusNotDetermined
|| [CLLocationManagerauthorizationStatus] ==kCLAuthorizationStatusAuthorized))
{

        returnYES;

    }elseif
([CLLocationManagerauthorizationStatus] ==kCLAuthorizationStatusDenied)
{

        returnNO;

    }else{

        returnNO;

    }

}
下面是调用返回值是YES,定位开启,NO,关闭:

[NSXYCToolObjectdetermineWhetherTheAPPOpensTheLocation]

如果没开启,我们会弹框提示让他打开定位,进行下面的操作

 if (![NSXYCToolObjectdetermineWhetherTheAPPOpensTheLocation])
{

        UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"请到设置->隐私->定位服务中开启【学易车】定位服务,以便于距离筛选能够准确获得你的位置信息"
delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"设置",nil];

        [alert
show];

    }

弹框提示成功后,如果要打开定位,在确定的点击事件里写入下面的代码,就可以实现类似于DD一样直接跳转到该APP的定位设置里。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{//点击弹窗按钮后

     if (buttonIndex ==1){//确定

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

     }

}

效果图如下,已DD为例:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐