美文网首页
iOS10~12系统 使用UIApplicationOpenSe

iOS10~12系统 使用UIApplicationOpenSe

作者: 福尔摩罗 | 来源:发表于2020-08-14 11:57 被阅读0次

在iOS开发过程中,有时会遇到需要跳转到系统设置页面,让用户来打开权限的需求,今天说一下我在打开系统设置页面中遇到的问题

在我使用下面代码跳转设置页面打开定位信息时,跳转到的设置页面没有定位选项

image.png
    if (   [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedAlways
        && [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse) {
     
        [self alertMessage:@"请求打开定位权限\n应用需要定位权限以提供地图服务" cancelTitle:@"放弃" confirmTitle:@"设置" confirmBlock:^{
            NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
        
            if([[UIApplication sharedApplication] canOpenURL:url]) {
                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
            };
        }];

    }

后测试发现只有iOS10至iOS12系统中出现了这个问题,iOS13没有问题,

解决办法!

因为我是在首页使用了百度地图的获取定位方法,所以没有触发iOS系统自身的定位系统,所以需要触发iOS自身的CLLocationManager,当iOS系统的定位权限被触发后,再次使用UIApplicationOpenSettingsURLString跳转,应用内就会出现定位选项

1351600137187_.pic_hd.jpg

tips

iOS10 之前是跳转不到设置页面详情页的
网上所说的Prefer URL_TYPE方式会被当做私有方法拒绝上架

相关文章

网友评论

      本文标题:iOS10~12系统 使用UIApplicationOpenSe

      本文链接:https://www.haomeiwen.com/subject/lhkgdktx.html