En utilisant UIApplication.openSettingsURLString
Mise à jour pour Swift 5.1
override func viewDidAppear(_ animated: Bool) {
let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
Swift 4.2
override func viewDidAppear(_ animated: Bool) {
let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
viewDidAppear
méthode, avec le boutonSettings
etCancel
UIApplication.sharedApplication().openURL(yourCustomURL)
partir de l'application actuelle, mais vous n'avez pas cet accès depuis l'application ParamètresRéponse originale ci-dessous
Swift 5
Swift 4
REMARQUE: la méthode suivante fonctionne pour toutes les versions inférieures à iOS 11, pour les versions supérieures, l'application peut être rejetée car il s'agit d'une API privée
Parfois, nous voulons amener un utilisateur à des paramètres autres que les paramètres de notre application. La méthode suivante vous aidera à y parvenir:
Tout d'abord, configurez les schémas d'URL dans votre projet. Vous le trouverez dans Target -> Info -> URL Scheme. cliquez sur le bouton + et tapez prefs dans les schémas d'URL
Swift 5
Swift 3
Rapide
Objectif c
et voici toutes les URL disponibles
** Sur IOS <12 **
Sur IOS 13
Préférences d'application: DO_NOT_DISTURB
Pas testé
Préférences d'application: TWITTER (??)
Remarque: les paramètres réseau ne seront pas ouverts dans un simulateur, mais le lien fonctionnera sur un appareil réel.
la source
App-Prefs
au lieu deprefs
comme schéma de la chaîne d'URL. par exempleApp-Prefs:root=WIFI
App-Prefs
ouprefs:root
comme ce sont des API privées, et à moins que vous ne soyez très chanceux, votre application sera rejetée.Dans iOS 8+, vous pouvez effectuer les opérations suivantes:
Swift 4
la source
UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
URL(string: UIApplication.openSettingsURLString).map { UIApplication.shared.open($0, options: [:], completionHandler: nil) }
En utilisant l'indication de @ vivek, je développe une classe d'utils basée sur Swift 3 , j'espère que vous apprécierez!
Ceci est très utile car cette API changera à coup sûr et vous pouvez refactoriser une fois et très rapidement!
la source
La première réponse des schémas d'URL spécifiques à l' application a fonctionné pour moi sur iOS 10.3.
la source
App-Prefs:root=Privacy&path=LOCATION
travaillé pour moi pour accéder aux paramètres de localisation généraux. Remarque: ne fonctionne que sur un appareil.la source
dans ios10 / Xcode 8 dans le simulateur:
travaux
ne fait pas.
la source
NS
préfixe a-t-il été supprimé dans iOS 10?J'ai vu cette ligne de code
ne fonctionne pas, cela n'a pas fonctionné pour moi dans ios10 / Xcode 8, juste une petite différence de code, veuillez le remplacer par
Swift3
Remplacer par
J'espère que ça aide. À votre santé.
la source
mot d'avertissement: les schémas d'URL
prefs:root
ouApp-Prefs:root
sont considérés comme des API privées. Apple peut rejeter votre application si vous les utilisez, voici ce que vous pouvez obtenir lors de la soumission de votre application:la source
Swift 4.2, iOS 12
La
open(url:options:completionHandler:)
méthode a été mise à jour pour inclure un dictionnaire d'options non nul, qui à partir de cet article ne contient qu'une seule option possible de typeUIApplication.OpenExternalURLOptionsKey
(dans l'exemple).La construction explicite d'une URL, comme avec "App-Prefs", a, AFAIK, obtenu le rejet de certaines applications du magasin.
la source
Ajout à @Luca Davanzo
iOS 11, certains paramètres d'autorisation ont été déplacés vers le chemin de l'application:
la source
SWIFT 4
Cela peut prendre les paramètres spécifiques de votre application, si c'est ce que vous recherchez.
la source
Comme ci-dessus, @niravdesai a déclaré App-prefs. J'ai trouvé que cela
App-Prefs:
fonctionne pour les appareils iOS 9, 10 et 11. testés. où commeprefs:
fonctionne uniquement sur iOS 9.la source