Bien, sé que hay muchas preguntas al respecto, pero todas son de hace mucho tiempo.
Entonces. Sé que es posible porque la aplicación Map lo hace.
En la aplicación Mapa, si apago la localización de esta aplicación, me envía un mensaje y, si presiono OK, se abrirá la "Aplicación de configuración". Y mi pregunta es, ¿cómo es esto posible? ¿Cómo puedo abrir la "Configuración de la aplicación" desde mi propia aplicación?
Básicamente, debo hacer lo mismo, si el usuario apaga la ubicación de mi aplicación, entonces le mostraré un mensaje que dice algo que abrirá la "Configuración de la aplicación"
ios
objective-c
iphone
application-settings
appsettings
FelipeDev.-
fuente
fuente

Respuestas:
Según lo mencionado por Karan Dua esto es ahora posible en iOS8 utilizando
UIApplicationOpenSettingsURLStringver documentación de Apple .Ejemplo:
Swift 4.2
En Swift 3:
En Swift 2:
En el objetivo-C
Antes de iOS 8:
No puedes. Como dijiste, esto se ha cubierto muchas veces y la ventana emergente que te pide que actives los servicios de ubicación es suministrada por Apple y no por la aplicación en sí. Es por eso que puede abrir la aplicación de configuración.
Aquí hay algunas preguntas y artículos relacionados:
¿Es posible abrir la aplicación de configuración con openURL?
Abrir mediante programación la aplicación de configuración (iPhone)
¿Cómo puedo abrir la aplicación Configuración cuando el usuario presiona un botón?
iPhone: abrir el panel de preferencias de la aplicación desde la aplicación
Abra UIPickerView haciendo clic en una entrada en las preferencias de la aplicación - ¿Cómo?
¿Abrir la aplicación de configuración?
iOS: estás haciendo ajustes incorrectos
fuente
De la respuesta de @Yatheeshaless :
Puede abrir la aplicación de configuración mediante programación en iOS8, pero no en versiones anteriores de iOS.
Rápido:
Swift 4:
Swift 4.2 (BETA):
C objetivo:
fuente
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];¡¡SI!! puede iniciar la pantalla de Configuración del dispositivo, lo he probado en iOS 9.2
Paso 1. necesitamos agregar esquemas de URL
Vaya a Configuración del proyecto -> Información -> Tipos de URL -> Agregar nuevos esquemas de URL
Paso 2. Inicie la configuración mediante programación gracias a @davidcann
También podemos lanzar subpantallas como Música, Ubicación, etc., simplemente usando el nombre propio
Vea esta lista completa de nombres aquí compartida por Henri Normak
Actualizar:
Según el comentario, todos quieren saber qué sucede después de este cambio en el estado de envío de mi solicitud.
Entonces
YES!! I got successful update submission and application is available on store without any complain.Solo para confirmar, acabo de descargar esta mañana y deshabilité los servicios de ubicación, y luego inicié la aplicación, que me pidió permiso de ubicación y luego apareció mi ventana emergente de alerta para enviarme a configuración -> página de servicios de ubicación -> Habilitado -> ¡¡Eso es!!
[AVISO: Su aplicación podría ser rechazada ... incluso si está aprobada, puede rechazarse en una versión futura si usa este método ...] 4
fuente
Puede usar esto en iOS 5.0 y versiones posteriores:esto ya no funciona.fuente
prefs:root=General&path=Bluetoothactualización de iOS 10
Apple cambió el método para abrir asíncrono en el hilo principal. Sin embargo, a partir de ahora solo es posible abrir la configuración de la aplicación en la configuración nativa.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];actualización de iOS 9
Ahora es posible ir directamente al menú de configuración secundaria. Sin embargo, se debe crear un esquema de URL. Se puede hacer de dos maneras:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>Entonces el código:
Rápido
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)C objetivo
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];fuente
Magic Launcheren la tienda de aplicaciones .En Swift 3 / iOS 10+ esto ahora parece
fuente
Swift 3:
fuente
Parece que puede usar la
prefs:<area>URL para abrir la configuración e ir a áreas específicas. Apple podría cambiarlos y romper su aplicación, así que siempre verifique si puede abrirlos primero.De este artículo han enumerado algunos de ellos para iOS 13.1:
URL de configuración
iCloud
prefs:root=CASTLEprefs:root=CASTLE&path=BACKUPRadios Inalámbricas
prefs:root=WIFIprefs:root=Bluetoothprefs:root=MOBILE_DATA_SETTINGS_IDPunto de acceso personal
prefs:root=INTERNET_TETHERINGprefs:root=INTERNET_TETHERING&path=Family%20Sharingprefs:root=INTERNET_TETHERING&path=Wi-Fi%20PasswordVPN
prefs:root=General&path=VPNNotificaciones
prefs:root=NOTIFICATIONS_IDprefs:root=NOTIFICATIONS_ID&path=Siri%20SuggestionsSuena
prefs:root=Soundsprefs:root=Sounds&path=RingtoneNo molestar
prefs:root=DO_NOT_DISTURBprefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20FromTiempo de pantalla
prefs:root=SCREEN_TIMEprefs:root=SCREEN_TIME&path=DOWNTIMEprefs:root=SCREEN_TIME&path=APP_LIMITSprefs:root=SCREEN_TIME&path=ALWAYS_ALLOWEDGeneral
prefs:root=Generalprefs:root=General&path=Aboutprefs:root=General&path=SOFTWARE_UPDATE_LINKprefs:root=General&path=CARPLAYprefs:root=General&path=AUTO_CONTENT_DOWNLOADprefs:root=General&path=MULTITASKINGprefs:root=General&path=DATE_AND_TIMEprefs:root=General&path=Keyboardprefs:root=General&path=Keyboard/KEYBOARDSprefs:root=General&path=Keyboard/Hardware%20Keyboardprefs:root=General&path=Keyboard/USER_DICTIONARYprefs:root=General&path=Keyboard/ReachableKeyboardprefs:root=General&path=INTERNATIONALprefs:root=General&path=DICTIONARYprefs:root=General&path=ManagedConfigurationListprefs:root=General&path=ResetCentro de control
prefs:root=ControlCenterprefs:root=ControlCenter&path=CUSTOMIZE_CONTROLSMonitor
prefs:root=DISPLAYprefs:root=DISPLAY&path=AUTOLOCKprefs:root=DISPLAY&path=TEXT_SIZEAccesibilidad
prefs:root=ACCESSIBILITYFondo de pantalla
prefs:root=WallpaperSiri
prefs:root=SIRILápiz de manzana
prefs:root=PencilID de cara
prefs:root=PASSCODESOS de emergencia
prefs:root=EMERGENCY_SOSBatería
prefs:root=BATTERY_USAGEprefs:root=BATTERY_USAGE&path=BATTERY_HEALTHIntimidad
prefs:root=Privacyprefs:root=Privacy&path=LOCATIONprefs:root=Privacy&path=CONTACTSprefs:root=Privacy&path=CALENDARSprefs:root=Privacy&path=REMINDERSprefs:root=Privacy&path=PHOTOSprefs:root=Privacy&path=MICROPHONEprefs:root=Privacy&path=SPEECH_RECOGNITIONprefs:root=Privacy&path=CAMERAprefs:root=Privacy&path=MOTION\Tienda de aplicaciones
prefs:root=STOREprefs:root=STORE&path=App%20Downloadsprefs:root=STORE&path=Video%20AutoplayBilletera
prefs:root=PASSBOOKContraseñas y Cuentas
prefs:root=ACCOUNTS_AND_PASSWORDSprefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATAprefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNTCorreo
prefs:root=MAILprefs:root=MAIL&path=Previewprefs:root=MAIL&path=Swipe%20Optionsprefs:root=MAIL&path=NOTIFICATIONSprefs:root=MAIL&path=Blockedprefs:root=MAIL&path=Muted%20Thread%20Actionprefs:root=MAIL&path=Blocked%20Sender%20Optionsprefs:root=MAIL&path=Mark%20Addressesprefs:root=MAIL&path=Increase%20Quote%20Levelprefs:root=MAIL&path=Include%20Attachments%20with%20Repliesprefs:root=MAIL&path=Signatureprefs:root=MAIL&path=Default%20AccountContactos
prefs:root=CONTACTSCalendario
prefs:root=CALENDARprefs:root=CALENDAR&path=Alternate%20Calendarsprefs:root=CALENDAR&path=Syncprefs:root=CALENDAR&path=Default%20Alert%20Timesprefs:root=CALENDAR&path=Default%20CalendarNotas
prefs:root=NOTESprefs:root=NOTES&path=Default%20Accountprefs:root=NOTES&path=Passwordprefs:root=NOTES&path=Sort%20Notes%20Byprefs:root=NOTES&path=New%20Notes%20Start%20Withprefs:root=NOTES&path=Sort%20Checked%20Itemsprefs:root=NOTES&path=Lines%20%26%20Gridsprefs:root=NOTES&path=Access%20Notes%20from%20Lock%20ScreenRecordatorios
prefs:root=REMINDERSprefs:root=REMINDERS&path=DEFAULT_LISTMemos de voz
prefs:root=VOICE_MEMOSTeléfono
prefs:root=PhoneMensajes
prefs:root=MESSAGESFaceTime
prefs:root=FACETIMEMapas
prefs:root=MAPSprefs:root=MAPS&path=Driving%20%26%20Navigationprefs:root=MAPS&path=TransitBrújula
prefs:root=COMPASSMedida
prefs:root=MEASURESafari
prefs:root=SAFARIprefs:root=SAFARI&path=Content%20Blockersprefs:root=SAFARI&path=DOWNLOADSprefs:root=SAFARI&path=Close%20Tabsprefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATAprefs:root=SAFARI&path=Page%20Zoomprefs:root=SAFARI&path=Request%20Desktop%20Websiteprefs:root=SAFARI&path=Readerprefs:root=SAFARI&path=Cameraprefs:root=SAFARI&path=Microphoneprefs:root=SAFARI&path=Locationprefs:root=SAFARI&path=ADVANCEDNoticias
prefs:root=NEWSSalud
prefs:root=HEALTHAtajos
prefs:root=SHORTCUTSMúsica
prefs:root=MUSICprefs:root=MUSIC&path=com.apple.Music:CellularDataprefs:root=MUSIC&path=com.apple.Music:OptimizeStorageprefs:root=MUSIC&path=com.apple.Music:EQprefs:root=MUSIC&path=com.apple.Music:VolumeLimittelevisión
prefs:root=TVAPPFotos
prefs:root=PhotosCámara
prefs:root=CAMERAprefs:root=CAMERA&path=Record%20Videoprefs:root=CAMERA&path=Record%20Slo-moLibros
prefs:root=IBOOKSCentro de juegos
prefs:root=GAMECENTERfuente
UIApplicationOpenSettingsURLStringesto solo funcionará si previamente ha permitido algún permiso. Por ejemplo, Ubicación, Foto, Contacto, Acceso a notificaciones push. Entonces, si no tiene dichos permisos del usuario:Si iOS 10 o superior ,
Se abrirá la Configuración pero luego se bloqueará. La razón, no hay nada en la configuración de su aplicación.
El siguiente código abrirá la configuración de su aplicación dentro de la Configuración de iOS.
Debido a la falta de disponibilidad del dispositivo, no pude verificar esto en iOS <10.
Además, pude encontrar el siguiente código de alguna esencia y también funciona bien en iOS 10. Pero no estoy seguro de si esto será aprobado por el equipo de revisión de Apple o no.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
fuente
En Swift 3 todo lo que necesitaba es esto (aquí, por ejemplo, redirigir a las notificaciones de mi aplicación):
Fuente: phynet gist .
Esto funcionó conmigo solo cuando la configuración está en segundo plano. Te redirigirá a la configuración de notificaciones de tu aplicación, pero si la configuración no se ejecutaba en segundo plano, solo te redirigirá a la configuración de notificaciones en general.
fuente
Puede usar el siguiente código para ello.
fuente
SWIFT 4.0
fuente
Swift 4
Prefiero abrir la configuración de una manera más segura,
fuente
Swift Puede usar la siguiente función para abrir la aplicación de configuración con la página Bluetooth
Nuevamente, esto no abriría la Configuración de la aplicación. Esto abriría la aplicación de configuración con Bluetooth, ya que es una conexión profunda con bluetooth.
fuente
Probado con iOS 10. Trabajando
Happy Coding :)
fuente
Para agregar a la respuesta aceptada: (de la documentación del desarrollador de Apple) "Cuando abre la URL creada a partir de esta cadena (openSettingsURLString), el sistema inicia la aplicación Configuración y muestra la configuración personalizada de la aplicación, si tiene alguna". Por lo tanto, si desea abrir la configuración de su aplicación, cree su propia configuración.bundle.
fuente
Agregue esto a su clase,
Llama así,
fuente