ios iphone settings url-scheme uiapplication

Configuración de inicio de iOS-> Restricciones del esquema de URL



iphone settings (13)

¡En iOS 9 funciona de nuevo!

Para abrir Configuración> General> Teclado , uso:

prefs:root=General&path=Keyboard

Además, es posible ir más lejos a los teclados :

prefs:root=General&path=Keyboard/KEYBOARDS

Recientemente descubrí el impresionante esquema de URL de configuración personalizado iOS5 , que se puede explicar en detalle en este excelente website .

He encontrado que esto funciona, dirigiendo al usuario a la aplicación de configuración desde mi aplicación:

[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"prefs:root=General"]];

Pero parece que no puede encaminarse directamente a la ruta de Restricciones a través del parámetro path :

[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

¿Alguien ha encontrado documentación sobre esto o ha podido hacer que esto funcione?

Cualquier idea sería muy apreciada. Intento que el usuario habilite la compra en la aplicación y preferiría que el usuario no haga clic manualmente en Restricciones (lo cual no es muy obvio).


A partir de iOS10 puedes usar

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)

para abrir la configuración general.

también puede agregar URLs conocidas (puede verlas en la respuesta más votada) para abrir configuraciones específicas. Por ejemplo, el de abajo abre el touchID y el código de acceso.

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)


A partir de iOS8, puede abrir la aplicación de configuración integrada con:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }

La cadena de URL real es @"app-settings:" . He intentado anexar diferentes secciones a la cadena ("Bluetooth", "GENERAL", etc.) pero parece que solo funciona el enlace a la pantalla principal de Configuración. Publica una respuesta si descubres lo contrario.


Actualizar:

prefs: NO funcionará desde iOS 10.


Aquí hay algo más que encontré:

  1. Después de haber definido el esquema de URL "prefs", "prefs: root = Safari & path = ContentBlockers" funciona en Simulator (iOS 9.1 en inglés ), pero no funciona en Simulator (chino simplificado) . Simplemente salta a Safari, pero no a Bloqueadores de contenido. Si su aplicación es internacional, tenga cuidado.
    Actualización: No sé por qué, ahora ya no puedo saltar a ContentBlockers, el mismo código, la misma versión, no funciona ahora. :(

  2. En las aplicaciones reales (la mía es iPhone 6S y iPad mini 2), "Safari" debería ser "SAFARI" , "Safari" no funciona en el dispositivo real, "SAFARI" ahora está trabajando en el simulador:

    #if arch(i386) || arch(x86_64) // Simulator let url = NSURL(string: "prefs:root=Safari")! #else // Device let url = NSURL(string: "prefs:root=SAFARI")! #endif if UIApplication.sharedApplication().canOpenURL(url) { UIApplication.sharedApplication().openURL(url) }

  3. Hasta el momento, no encontró ninguna diferencia entre iPhone y iPad.


Estoy actualizando una noticia aquí. Utilizando ''prefs:'' solo NO es rechazado por Apple, lo probé y verifiqué aprobado para la tienda de aplicaciones (en agosto de 2016). Gracias.


Funciona bien para la configuración de notificaciones de aplicaciones en IOS 10 (probado)

if(&UIApplicationOpenSettingsURLString != nil){ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }


Quería abrir el menú de Bluetooth en la aplicación de configuración y la ruta anterior (prefs: root = General & path = Bluetooth) no funcionó para mí. Lo que terminó trabajando para mí fue

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

Asegúrese de tener prefs esquema de prefs URL definido.


RESPUESTA DE AS @Nix Wang ESTO NO FUNCIONA EN IOS 10

ADVERTENCIA: este método no funcionará para dispositivos con iOS 5.1 y versiones posteriores. Consulte el comentario de Hlung a continuación.

Es posible que el componente de path tenga un nombre diferente al de la sección real, pero también es posible que no pueda acceder a esa sección directamente desde una URL. Encontré una lista de posibles URL y restricciones que no figuran en ella, tal vez aún no se haya descubierto.

Lista de URL conocidas actualmente en la aplicación Configuración:

  • prefs: root = General & path = Acerca de
  • prefs: root = General & path = ACCESIBILIDAD
  • prefs: root = AIRPLANE_MODE
  • prefs: root = General & path = AUTOLOCK
  • prefs: root = General & path = USO / USO CELULAR
  • prefs: root = Brillo
  • prefs: root = General & path = Bluetooth
  • prefs: root = General & path = DATE_AND_TIME
  • prefs: root = FACETIME
  • prefs: root = General
  • prefs: root = General & path = Teclado
  • prefs: root = CASTILLO
  • Preferencias: root = CASTLE & path = STORAGE_AND_BACKUP
  • prefs: root = General & path = INTERNACIONAL
  • prefs: root = LOCATION_SERVICES
  • prefs: root = ACCOUNT_SETTINGS
  • prefs: root = MÚSICA
  • prefs: root = MUSIC & path = EQ
  • prefs: root = MUSIC & path = VolumeLimit
  • prefs: root = General & path = Network
  • prefs: root = NIKE_PLUS_IPOD
  • prefs: root = NOTES
  • prefs: root = NOTIFICATIONS_ID
  • prefs: root = Teléfono
  • prefs: root = Fotos
  • prefs: root = General & path = ManagedConfigurationList
  • prefs: root = General & path = Restablecer
  • prefs: root = Sonidos y ruta = Tono de llamada
  • prefs: root = Safari
  • prefs: root = General & path = Asistente
  • prefs: root = Sonidos
  • prefs: root = General & path = SOFTWARE_UPDATE_LINK
  • prefs: root = TIENDA
  • prefs: root = TWITTER
  • prefs: root = General & path = USO
  • prefs: root = VIDEO
  • prefs: root = General & path = Red / VPN
  • prefs: root = Fondo de escritorio
  • Preferencias: root = WIFI
  • prefs: root = INTERNET_TETHERING

Sí, vi esto (y muchos más), incluso lo implementé en una aplicación de prueba. Realmente es necesario obtener la palabra definitiva de Apple, pero la opinión consensuada de la comunidad es que Apple lo desestimó en 5.1 después de que fue "descubierto / publicado públicamente", por lo que las aplicaciones que lo contengan no serán aceptadas.

08/01/12 Actualización: le pregunté a Apple a través de mi cuenta de desarrollador si hay una forma de iniciar programáticamente el cuadro de diálogo Configuración de WiFi. Aquí está la respuesta:

"Nuestros ingenieros han revisado su solicitud y han llegado a la conclusión de que no existe una forma admitida de lograr la funcionalidad deseada dadas las configuraciones de sistema de envío actuales".


Si agrega el esquema de URL de preferencias a su aplicación de iOS, le permitirá usar todos los esquemas que podamos en iOS 5. Lo he probado en iOS 9, pero creo que también funcionará en versiones anteriores.


Solución para iOS10. Funciona bien.

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"]; [[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];


iOS 10

Use app-prefs:

App-prefs:root=MOBILE_DATA_SETTINGS_ID

Ver gist