swift - usado - ios 12
Cómo abrir tu aplicación en Configuración iOS 11 (4)
Aquí está el código que estás buscando, supongo:
if let url = URL(string:UIApplicationOpenSettingsURLString) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
Parece que Apple ha movido muchas de las configuraciones de la aplicación a la ruta de la aplicación con iOS 11, ¿cómo abrir la ruta de la aplicación programáticamente en Configuración? Intenté "App-Prefs:root=/(Bundle.main.bundleIdentifier!)"
Pero esto no parece funcionar.
Tenga en cuenta que mi pregunta es específica para: Cómo abrir la ruta de la aplicación en la configuración: NO cómo abrir la configuración
Y si desea que funcione para las versiones de iOS anteriores y posteriores, haga lo siguiente:
if let url = URL(string:UIApplicationOpenSettingsURLString) {
if UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
}
openURL
ha quedado en desuso desde iOS 10, por lo que te aconsejaría que uses:
if let url = URL(string:UIApplicationOpenSettingsURLString) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: { success in
log.debug("Open app settings success: /(success)")
})
}
}
Swift 4.2, iOS 12
Abrir solo los ajustes es posible con la siguiente función:
extension UIApplication {
...
@discardableResult
static func openAppSettings() -> Bool {
guard
let settingsURL = URL(string: UIApplicationOpenSettingsURLString),
UIApplication.shared.canOpenURL(settingsURL)
else {
return false
}
UIApplication.shared.open(settingsURL)
return true
}
}
Uso: UIApplication.openAppSettings()
Pero tenga cuidado de NO usar un " esquema de URL no público ", como: prefs:root=
o App-Prefs:root
, porque de lo contrario su aplicación será rechazada. Esto me sucedió recientemente desde que estaba tratando de tener un enlace a la sección de wifi en la configuración.