如何以编程方式在iOS 10上打开Objective-C中的WIFI设置

下面的代码在iOS 9上正常工作,请参阅这篇文章。 但它不适用于iOS 10.如何在iOS 10上以编程方式打开WIFI设置

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 

相同的确切代码应该可以工作,但是对于iOS 10,您需要通过向URLtypes添加“首选项”来执行一些额外的工作:

select目标后:

  • 导航到“信息”选项卡。
  • 滚动到底部后,您应该看到“urltypes”部分。
  • 添加一个新的(通过点击加号button),并填写“URL架构”与“首选项”。

它应该类似于这个:

在这里输入图像说明

现在,你的代码应该可以正常工作。

更新:

如果它以某种方式无法按预期工作,则可能需要遵循此解决方法 。

希望有所帮助。

在iOS 10中,需要一个新的url。 尝试使用这个testing这两个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上正常工作,

转到目标 – >(应用程序) – >信息 – > 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"]]; } } 

对于Swift:

 let url = URL(string: "App-Prefs:root=WIFI") if UIApplication.shared.canOpenURL(url!){ UIApplication.shared.openURL(url!) } 

试试这个:

  if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]options:[NSDictionary dictionary] completionHandler:^(BOOL success) { }]; } 

谢谢 :)

  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 }) }