正文
以前做项目的时候,简单实现过在应用中点击邮箱、手机号码格式的字符串唤起手机邮件、发起拨号这样的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: