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

97 篇文章 0 订阅
79 篇文章 2 订阅

首先我们要向导入一个官方提供的库

#import <CoreLocation/CLLocationManager.h>

导入以后就可以写代码了,当然了为了方便起见,个人建议将下面的方法封装成一个工具类,这样的话在任何位置都可以调用

我将该方法封装成了+方法(类方法),类名:

NSXYCToolObject : NSObject

.h 文件

/*

 * 判断是否打开定位

 */

+ (BOOL)determineWhetherTheAPPOpensTheLocation;

.m

 

#pragma mark 判断是否打开定位

+(BOOL)determineWhetherTheAPPOpensTheLocation{
    if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] ==kCLAuthorizationStatusAuthorizedWhenInUse || [CLLocationManager authorizationStatus] ==kCLAuthorizationStatusNotDetermined || [CLLocationManager authorizationStatus] ==kCLAuthorizationStatusAuthorized)) {
        return YES;
    } else if ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied ) {
        return NO;
    } else {
        return NO;
    }
}

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

[NSXYCToolObject determineWhetherTheAPPOpensTheLocation]

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

 

if (![NSXYCToolObject determineWhetherTheAPPOpensTheLocation]) {
     UIAlertView *alert = [[UIAlertView alloc]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为例:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王 哪跑!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值