Recientemente descubrí el increíble esquema de URL de configuración personalizada de iOS5 , que se puede explicar en detalle en este excelente sitio web .
Descubrí que esto funciona, dirigiendo al usuario a la aplicación Configuración desde mi aplicación:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
Pero parece que no puede enrutarse directamente a la ruta de Restricciones a través del path
parámetro:
[[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. Estoy tratando de hacer que el usuario habilite las compras en la aplicación y prefiero que el usuario no haga clic manualmente en Restricciones (no es muy obvio).
ios
iphone
settings
url-scheme
uiapplication
kturner
fuente
fuente
Respuestas:
COMO LA RESPUESTA DE @Nix Wang ESTO NO FUNCIONA EN IOS 10
ADVERTENCIA: Este método no funcionará para dispositivos que ejecuten iOS 5.1 y superior. Consulte el comentario de Hlung a continuación.
Es posible que el
path
componente tenga un nombre diferente al de la sección real, pero también es posible que actualmente no pueda acceder a esa sección directamente desde una URL. Encontré una lista de posibles URL y las restricciones no están en ella, tal vez aún no se haya descubierto.Lista de URL conocidas actualmente en la aplicación Configuración:
fuente
[NSURL URLWithString:UIApplicationOpenSettingsURLString]
A partir de iOS8, puede abrir la aplicación de configuración incorporada con:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }
La cadena de URL real es
@"app-settings:"
. Intenté agregar diferentes secciones a la cadena ("Bluetooth", "GENERAL", etc.) pero parece que solo funciona la vinculación a la pantalla principal de Configuración. Publica una respuesta si descubres lo contrario.fuente
Si agrega el esquema de URL de preferencias a su aplicación de iOS, le permitirá usar todos esos esquemas que podríamos en iOS 5. Lo probé en iOS 9, pero creo que también funcionará en versiones anteriores.
fuente
Actualizar:
prefs:
NO funcionará desde iOS 10.fuente
prefs:
ya no funcionan, lo siguiente hace (al menos en la apertura general):App-Prefs::root=Settings&path=General
Sí, vi esto (y muchos más), incluso lo implementé en una aplicación de prueba. Realmente necesito obtener la palabra definitiva de Apple, pero la opinión de consenso de la comunidad es que Apple lo rechazó en 5.1 después de que fue "descubierto / publicado" públicamente, por lo que las aplicaciones que lo contienen no serán aceptadas.
Actualización del 01/08/12: le pregunté a Apple a través de mi cuenta de desarrollador si hay una manera de iniciar mediante programación el cuadro de diálogo Configuración de WiFi. Aquí está la respuesta:
fuente
¡En iOS 9 vuelve a funcionar!
Para abrir Configuración> General> Teclado , uso:
prefs:root=General&path=Keyboard
Además, es posible ir más allá a los teclados :
prefs:root=General&path=Keyboard/KEYBOARDS
fuente
LSApplicationQueriesSchemes
eninfo.plist
?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ó funcionando para mí fue
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
Asegúrese de tener
prefs
definido primero el esquema de URL.fuente
prefs
cosas.Solución para iOS10. Funciona bien.
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"]; [[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
fuente
A partir de iOS10 puedes usar
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
para abrir la configuración general.
También puede agregar direcciones URL conocidas (puede verlas en la respuesta más votada) para abrir configuraciones específicas. Por ejemplo, el siguiente abre touchID y contraseña.
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
fuente
App-Prefs
es una API privada que provocará el rechazo de la aplicación durante la revisión.Aquí hay algo más que encontré:
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 en Simulator (chino simplificado) . Simplemente salta a Safari, pero no a los 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. :(
En dispositivos reales (el mío es iPhone 6S y iPad mini 2), "Safari" debería ser "SAFARI" , "Safari" no funciona en el dispositivo real, "SAFARI" ahora funciona 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) }
Hasta el momento, no ha encontrado diferencias entre iPhone y iPad.
fuente
Funciona bien para la configuración de notificación de aplicaciones en IOS 10 (probado)
if(&UIApplicationOpenSettingsURLString != nil){ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }
fuente
iOS 10
Utilizar
app-prefs:
App-prefs:root=MOBILE_DATA_SETTINGS_ID
Ver la esencia
fuente
Estoy actualizando una noticia aquí. El uso de 'prefs:' solo NO es rechazado por Apple, lo probé y verifiqué que estaba aprobado en la tienda de aplicaciones (en agosto de 2016). gracias.
fuente
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];
para abrir la configuración DND del dispositivo. ¿Apple rechazará esto?