С помощью UIApplication.openSettingsURLString
Обновление для 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
методе, с помощьюSettings
иCancel
кнопкиUIApplication.sharedApplication().openURL(yourCustomURL)
из текущего приложения, но у вас нет этого доступа из приложения «Настройки»Оригинальный ответ ниже
Swift 5
Swift 4
ПРИМЕЧАНИЕ: следующий метод работает для всех версий ниже iOS 11, для более высоких версий приложение может быть отклонено, так как это частный API
Иногда мы хотим привести пользователя к настройкам, отличным от настроек нашего приложения. Следующий метод поможет вам достичь этого:
Сначала настройте схемы URL в вашем проекте. Вы найдете его в Target -> Info -> URL Scheme. нажмите на кнопку + и введите prefs в URL Schemes
Swift 5
Свифт 3
стриж
Objective-C
и далее все доступные URL
** на IOS <12 **
На IOS 13
App-префы: DO_NOT_DISTURB
Не проверено
Настройки приложения: TWITTER (??)
Примечание: настройки сети не будут открыты в симуляторе, но ссылка будет работать на реальном устройстве.
источник
App-Prefs
вместоprefs
схемы строку URL. НапримерApp-Prefs:root=WIFI
App-Prefs
или,prefs:root
поскольку они являются частными API, и если вам не повезет, ваше приложение будет отклонено.В iOS 8+ вы можете сделать следующее:
Swift 4
источник
UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
URL(string: UIApplication.openSettingsURLString).map { UIApplication.shared.open($0, options: [:], completionHandler: nil) }
Используя подсказку @ vivek, я разрабатываю класс утилит на основе Swift 3 , надеюсь, вы это оцените!
Это очень полезно, так как этот API наверняка изменится, и вы сможете провести рефакторинг один раз и очень быстро!
источник
Первый ответ от App-Specific URL Schemes работал для меня на iOS 10.3.
источник
App-Prefs:root=Privacy&path=LOCATION
работал для меня, чтобы добраться до общих настроек местоположения. Примечание: работает только на устройстве.источник
в ios10 / Xcode 8 в симуляторе:
работает
не.
источник
NS
префикс был удален в прошивке 10?Я видел эту строку кода
не работает, у меня не работает в ios10 / Xcode 8, только небольшая разница в коде, пожалуйста, замените это на
Swift3
Заменить
Надеюсь, поможет. Приветствия.
источник
Предупреждение: схемы URL
prefs:root
илиApp-Prefs:root
URL считаются частным API. Apple может отклонить ваше приложение, если вы используете его, вот что вы можете получить при отправке приложения:источник
Swift 4.2, iOS 12
open(url:options:completionHandler:)
Метод был обновлен , чтобы включить не-нильполугруппу варианты словаря, который , как этот пост содержит только один возможный вариант типаUIApplication.OpenExternalURLOptionsKey
(в данном примере).Явное создание URL, например, с помощью «App-Prefs», AFAIK привело к отклонению некоторых приложений из магазина.
источник
Добавление к @Luca Davanzo
iOS 11, некоторые настройки разрешений перенесены в путь к приложению:
источник
SWIFT 4
Это может принять конкретные настройки вашего приложения, если это то, что вы ищете.
источник
Как и выше @niravdesai сказал App-Prefs. Я обнаружил, что
App-Prefs:
работает как на iOS 9, 10, так и на 11 устройствах. где какprefs:
работает только на iOS 9.источник