Les parameters Wifi ouverts par "prefs: root = WIFI" ont échoué dans iOS 10

J'utilisais prefs: root = WIFI url dans mon application avec prefs entré dans info.plist pour ouvrir directement l'application des parameters iOS dans les parameters Wi-Fi et ça fonctionnait très bien sur iOS 9 mais ça ne marche plus sur iOS 10.

Est-ce que quelqu'un sait si c'est juste une régression dans le premier aperçu du développeur ou la façon d'ouvrir les parameters Wi-Fi a changé dans iOS 10 ou il n'est plus autorisé?

Juste pour que ce soit explicite: Apple ne le permet pas. Il est possible que votre application le fasse de toute façon, mais c'est la même chose que d'utiliser une autre API non documentée.

Voici la list complète des schémas d'URL Apple pris en charge.

Voici un fil dans lequel Apple confirme que "tout système d'URL Apple qui n'est pas officiellement documenté doit être considéré comme une API privée".

SWIFT 3.0: – travailler dans iOS 10 et versions plus récentes aussi iOS 7,8,9

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

essayez ceci pour l'objective c dans iOS 10

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

Mon application utilise également cette API. Malheureusement Apple désactiver cela sur iOS 10. Voici ma solution: en dessous de iOS 10, il peut toujours ouvrir App Store. sur iOS 10, il ira à une sous-page (Accès aux données cellulaires) de Setting App, vous pouvez revenir à la page de réglage en un seul clic. Je décide de le garder. parce qu'il est toujours pratique que l'user ouvre manuellement l'application Setting.

 NSURL *url = [NSURL URLWithSsortingng:@"prefs:root=WIFI"]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; } else { [[UIApplication sharedApplication] openURL:[NSURL URLWithSsortingng:UIApplicationOpenSettingsURLSsortingng]]; } 

Utiliser "App-Prefs: root" au lieu de "prefs: root"

Cela fonctionne bien sur iOS 10,

Aller à Cibles -> (Application) -> Info -> Types d'URL -> +

Dans les URL Schemes écrivez

Préfs

Puis appelez,

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

iOS 10, pour ouvrir les parameters de vos applications:

 if let settingsURL = URL(ssortingng: UIApplicationOpenSettingsURLSsortingng) { UIApplication.shared.openURL(settingsURL) }