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

我在我的应用程序中使用了prefs:root = WIFI urlscheme,在info.plist中input了prefs直接在Wi-Fi设置中打开iOS设置应用程序,并且它在iOS 9上运行良好,但在iOS 10上无法使用。

有谁知道这只是第一次开发人员预览回归,或者打开Wi-Fi设置的方式在iOS 10中已经改变,否则不允许?

只是如此明确:苹果不允许这样做。 无论如何,您的应用可能会完成,但这与使用其他任何未公开的API相同。

以下是支持的Apple URLscheme的完整列表 。

苹果公司确认:“任何未正式logging的Apple URLscheme都应被视为私有API”。

SWIFT 3.0: – 在iOS 10和更新的版本中也可以使用iOS 7,8,9

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

试试这个在iOS 10中的目标C.

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

我的应用程序也使用该API。 不幸的是苹果在iOS 10上禁用了这个function。下面是我的解决scheme:在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]]; } 

使用“App-Prefs:root”而不是“prefs:root”

这在iOS 10上正常工作,

转到目标 – >(应用程序) – >信息 – > URLtypes – > +

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"]]; } } 

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

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