在iOS 10中,通过“prefs:root = WIFI”打开Wifi设置失败

时间:2016-09-30 01:54:04

标签: ios wifi ios10

我在我的应用中使用了prefs:root = WIFI url方案,在info.plist中输入了prefs,直接打开了Wi-Fi设置中的iOS设置应用程序,它在iOS 9上运行良好,但它不再起作用了iOS 10。

有人知道这只是第一个开发者预览中的回归,还是在iOS 10中打开Wi-Fi设置的方式已经改变,或者不再允许这样做了?

7 个答案:

答案 0 :(得分:21)

就这么明确:Apple不允许这样做。您的应用程序可能会通过它,但这与使用任何其他未记录的API相同。

Here is the full list支持的Apple网址计划。

Here's a thread Apple确认“任何未正式记录的Apple URL方案都应被视为私有API。”

答案 1 :(得分:13)

SWIFT 3.0: - 在iOS 10中工作

@IBAction func openWifiSetting(_ sender: AnyObject) {
    let url = URL(string: "App-Prefs:root=WIFI") //for WIFI setting app
    UIApplication.shared.openURL(url!)
}

答案 2 :(得分:6)

我的应用也在使用该API。不幸的是,Apple在iOS 10上禁用了它。这是我的解决方案:在iOS 10下,它仍然可以打开设置应用程序。在iOS 10上,它将转到设置应用程序的子页面(蜂窝数据访问),您可以通过单击返回设置页面。我决定保留它。因为它比用户手动打开设置应用程序还要方便。

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

答案 3 :(得分:6)

在iOS 10中尝试使用此目标c

Npgsql.PostgresException : 42883: Function _public.foo(text, text, timestamp without time zone) does not exist

答案 4 :(得分:2)

使用“App-Prefs:root”代替“prefs:root”

答案 5 :(得分:2)

iOS 10,打开您的应用设置:

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) {  
                UIApplication.shared.openURL(settingsURL)
          }

答案 6 :(得分:1)

这适用于iOS 10,

  

转到目标 - > (申请) - >信息 - >网址类型 - > +

URL Schemes

  

首选项

然后致电,

- (void)openWifiSettings
{
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=WIFI"]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
    } else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];
    }
}