Abrir la configuration de Wifi por "prefs: root = WIFI" falló en iOS 10

Utilicé prefs: root = esquema de url WIFI en mi aplicación con prefs ingresado en info.plist para abrir directamente la aplicación de configuration de iOS en la configuration de Wi-Fi y funcionaba muy bien en iOS 9, pero ya no funciona en iOS 10.

¿Alguien sabe si esto es solo una regresión en la primera vista previa del desarrollador o la manera de abrir la configuration de Wi-Fi ha cambiado en iOS 10 o ya no está permitido?

SWIFT 3.0: – trabajando en iOS 10 y versiones más recientes también iOS 7,8,9

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

Solo para que sea explícito: Apple no lo permite. Es posible que su aplicación lo solucione de todos modos, pero esto es lo mismo que usar cualquier otra API no documentada.

Aquí está la list completa de esquemas de URL Apple compatibles.

Aquí hay un hilo donde Apple confirma que "cualquier esquema de URL de Apple que no esté oficialmente documentado debería considerarse API privada".

Mi aplicación también está utilizando esa API. Desafortunadamente Apple deshabilita esto en iOS 10. Aquí está mi solución: a continuación de iOS 10, todavía puede abrir la aplicación de configuration. en iOS 10, irá a una subpágina (Acceso a datos celulares) de Configuración de la aplicación, puede regresar a la página de configuration con un clic. Decido quedarme. porque aún es conveniente que el usuario abra manualmente la Configuración de la aplicación.

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

testing esto para el objective c en iOS 10

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

Usando "App-Prefs: root" en lugar de "prefs: root"

Esto funciona bien en iOS 10,

Ir a los destinos -> (Aplicación) -> Información -> Tipos de URL -> +

En los URL Schemes escribe

prefs

Luego llame,

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

iOS 10, para abrir la configuration de tus aplicaciones:

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