J'utilisais prefs: root = WIFI url scheme dans mon application avec les préférences saisies dans info.plist pour ouvrir directement l'application de configuration iOS dans les paramètres Wi-Fi. Il fonctionnait parfaitement sous iOS 9 mais ne fonctionne plus sous iOS 10.
Est-ce que quelqu'un sait s'il s'agit simplement d'une régression dans la première prévisualisation du développeur ou si la manière d'ouvrir les paramètres Wi-Fi a changé dans iOS 10 ou si cela n'est plus autorisé?
Justement, c'est explicite: Apple ne le permet pas. Il est possible que votre application réussisse de toute façon, mais cela revient à utiliser une autre API non documentée.
Voici la liste complète des schémas d'URL Apple pris en charge.
Voici un fil où Apple confirme que "tout modèle d’URL d’Apple qui n’est pas officiellement documenté doit être considéré comme une API privée".
Swift 3.0: - fonctionne sous iOS 10
@IBAction func openWifiSetting(_ sender: AnyObject) {
let url = URL(string: "App-Prefs:root=WIFI") //for WIFI setting app
UIApplication.shared.openURL(url!)
}
Mon application utilise également cette API. Malheureusement, Apple le désactive sur iOS 10. Voici ma solution: sous iOS 10, il est toujours possible d'ouvrir Setting App. sur iOS 10, vous accédez à une sous-page (Accès aux données cellulaires) de Setting App, vous pouvez revenir à la page de réglage en un clic. Je décide de le garder. car il est toujours pratique que l'utilisateur ouvre manuellement Setting App.
NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
essayez ceci pour Objective C dans iOS 10
NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];
}
Utilisation de "App-Prefs: root" au lieu de "prefs: root"
iOS 10, pour ouvrir les paramètres de vos applications:
if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) {
UIApplication.shared.openURL(settingsURL)
}
Cela fonctionne très bien sur iOS 10,
Allez à Cibles -> (Application) -> Info -> Types d'URL -> +
Dans le URL Schemes
écrire
prefs
Alors appelez,
- (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"]];
}
}