专栏名称: Adrenine
iOS开发
目录
相关文章推荐
51好读  ›  专栏  ›  Adrenine

iOS跳转到系统设置里的指定子功能界面

Adrenine  · 掘金  ·  · 2017-12-13 08:47

正文

以前做项目的时候,简单实现过在应用中点击邮箱、手机号码格式的字符串唤起手机邮件、发起拨号这样的openURL功能。

今天,看到一篇博客 关于iOS应用跳转“prefs:root”无效的问题(包括iOS10) ,看到里面提到这种通常的做法:

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];

在iOS 10以后被

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

代替。

(注:openURL这个api也在iOS10上过时,现在openURL:options:CompletionHandler:取代)

还提到:苹果已经不允许app跳到各个设置页面了,只能用UIApplicationOpenSettingsURLString。

可是我发现这种说法并不够严谨,对,UIApplicationOpenSettingsURLString这样是能跳转到系统设置界面的。经过我的测试,iOS 10还是能够支持跳转到具体的某个设置页面的(比如设置里的WiFi、定位服务界面这些),只是跟以前的做法不太一样了。

以前的写法是这样:

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
//    NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }

但是现在不行了,报以下error:







请到「今天看啥」查看全文