[英]How to programmatically open the WIFI settings in Objective-C on iOS 10
以下代碼在iOS 9上運行正常,請參閱此帖子。 但它在iOS 10上不起作用。如何在iOS 10上以編程方式打開WIFI設置
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
相同的代碼應該可以使用,但是對於iOS 10,您需要通過向URL類型添加“prefs”來做一些額外的工作:
選擇目標后:
它應該類似於:
現在,您的代碼應該可以正常工作。
更新:
如果如預期-somehow- 沒有工作,你可能想遵循這一解決辦法 。
希望有所幫助。
在iOS 10中,需要新的URL。 嘗試使用此代碼測試兩個網址:
NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
NSURL* url = [NSURL URLWithString:urlString];
if([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];
break;
}
}
這適用於iOS 10,
轉到目標 - >(應用程序) - >信息 - > URL類型 - > +
在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"]];
}
}
試試這個:
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]options:[NSDictionary dictionary] completionHandler:^(BOOL success) {
}];
}
謝謝 :)
對於Swift:
let url = URL(string: "App-Prefs:root=WIFI")
if UIApplication.shared.canOpenURL(url!){
UIApplication.shared.openURL(url!)
}
Swift 4.2,iOS 12
使用較新版本的iOS不再可能進行這種深度鏈接。 我的應用程序最近被拒絕使用:“ 非公共URL方案 ”,例如: prefs:root=
。 所以我要說不要浪費你的時間來做我們目前無法做的事情,只需打開設置即可。
這是我目前在我的應用程序中使用的功能:
extension UIApplication {
...
@discardableResult
static func openAppSetting() -> Bool {
guard
let settingsURL = URL(string: UIApplicationOpenSettingsURLString),
UIApplication.shared.canOpenURL(settingsURL)
else {
return false
}
UIApplication.shared.open(settingsURL)
return true
}
}
用法: UIApplication.openAppSetting()
let url=URL(string: "App-Prefs:root=WIFI")
// you can change root as your requirements
if UIApplication.shared.canOpenURL(url!)
{
UIApplication.shared.open(url!, options: [:], completionHandler: {success in
})
}
else{
UIApplication.shared.open(url!, options: [:], completionHandler: {success in
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.