I want to open WIFI setting section from my iOS application, my code was working well before Swift 3 with iOS 9.2
if let settingsURL = URL(string: AppSettingsWifiUrl) {
UIApplication.shared.openURL(settingsURL)
}
But after updating it is not working with Xcode 8 + Swift 3 + iOS 10, can anybody help here?
We can't do this anymore on iOS 11, we can just open the settings :
if let url = URL(string:UIApplicationOpenSettingsURLString) {
if UIApplication.shared.canOpenURL(url) {
let url = UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
let url=URL(string: "App-Prefs:root=Privacy&path=Location")
if UIApplication.shared.canOpenURL(url!)
{
UIApplication.shared.open(url!, options: [:], completionHandler: {sucess in
})
}
else{
UIApplication.shared.open(url!, options: [:], completionHandler: {sucess in
})
}
iOS 9+
You can't directly open the Wi-Fi settings tab from your app. You are just allowed to open the settings app in general.
The following code works with Swift 4
+ iOS 9+
:
func openWifiSettings() {
print("Opening Wi-Fi settings.")
let shared = UIApplication.shared
let url = URL(string: UIApplicationOpenSettingsURLString)!
if #available(iOS 10.0, *) {
shared.open(url)
} else {
shared.openURL(url)
}
}
Source: Apple developer documentation open
and openURL
It was actually possible in iOS 9
to open the Wi-Fi settings tab directly (using private API URL schemes) but this was considered as bug usage.
Therefore: Don't use App-Prefs:root
or pref:root
URL schemes as they will lead to rejection of your app by Apple's review check.
Source: Apple developer forum post from Apple's eskimo.
iOS 11+
If you need to connect to a certain Wi-Fi network NEHotspotConfigurationManager
maybe helps.
Source: Apple technical Q&A QA1942
Edited 26-02-20, Pay attention, in versions later than ios 10 your binary will be rejected
It's possible on iOS 10 and Swift 3
let url = URL(string: "App-Prefs:root=WIFI") //for WIFI setting app
let app = UIApplication.shared
app.openURL(url!)
This thing will work with iOS 10 also but you have to add URL types in ur project setting info.
URL schemes should be prefs
If you need I will share the screen shot so that you can easily achieve.
Thanks