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
UIApplicationOpenSettingsURLString
ver 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=Bluetooth
actualizació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 Launcher
en 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=CASTLE
prefs:root=CASTLE&path=BACKUP
Radios Inalámbricas
prefs:root=WIFI
prefs:root=Bluetooth
prefs:root=MOBILE_DATA_SETTINGS_ID
Punto de acceso personal
prefs:root=INTERNET_TETHERING
prefs:root=INTERNET_TETHERING&path=Family%20Sharing
prefs:root=INTERNET_TETHERING&path=Wi-Fi%20Password
VPN
prefs:root=General&path=VPN
Notificaciones
prefs:root=NOTIFICATIONS_ID
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
Suena
prefs:root=Sounds
prefs:root=Sounds&path=Ringtone
No molestar
prefs:root=DO_NOT_DISTURB
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
Tiempo de pantalla
prefs:root=SCREEN_TIME
prefs:root=SCREEN_TIME&path=DOWNTIME
prefs:root=SCREEN_TIME&path=APP_LIMITS
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
General
prefs:root=General
prefs:root=General&path=About
prefs:root=General&path=SOFTWARE_UPDATE_LINK
prefs:root=General&path=CARPLAY
prefs:root=General&path=AUTO_CONTENT_DOWNLOAD
prefs:root=General&path=MULTITASKING
prefs:root=General&path=DATE_AND_TIME
prefs:root=General&path=Keyboard
prefs:root=General&path=Keyboard/KEYBOARDS
prefs:root=General&path=Keyboard/Hardware%20Keyboard
prefs:root=General&path=Keyboard/USER_DICTIONARY
prefs:root=General&path=Keyboard/ReachableKeyboard
prefs:root=General&path=INTERNATIONAL
prefs:root=General&path=DICTIONARY
prefs:root=General&path=ManagedConfigurationList
prefs:root=General&path=Reset
Centro de control
prefs:root=ControlCenter
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
Monitor
prefs:root=DISPLAY
prefs:root=DISPLAY&path=AUTOLOCK
prefs:root=DISPLAY&path=TEXT_SIZE
Accesibilidad
prefs:root=ACCESSIBILITY
Fondo de pantalla
prefs:root=Wallpaper
Siri
prefs:root=SIRI
Lápiz de manzana
prefs:root=Pencil
ID de cara
prefs:root=PASSCODE
SOS de emergencia
prefs:root=EMERGENCY_SOS
Batería
prefs:root=BATTERY_USAGE
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
Intimidad
prefs:root=Privacy
prefs:root=Privacy&path=LOCATION
prefs:root=Privacy&path=CONTACTS
prefs:root=Privacy&path=CALENDARS
prefs:root=Privacy&path=REMINDERS
prefs:root=Privacy&path=PHOTOS
prefs:root=Privacy&path=MICROPHONE
prefs:root=Privacy&path=SPEECH_RECOGNITION
prefs:root=Privacy&path=CAMERA
prefs:root=Privacy&path=MOTION\
Tienda de aplicaciones
prefs:root=STORE
prefs:root=STORE&path=App%20Downloads
prefs:root=STORE&path=Video%20Autoplay
Billetera
prefs:root=PASSBOOK
Contraseñas y Cuentas
prefs:root=ACCOUNTS_AND_PASSWORDS
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
Correo
prefs:root=MAIL
prefs:root=MAIL&path=Preview
prefs:root=MAIL&path=Swipe%20Options
prefs:root=MAIL&path=NOTIFICATIONS
prefs:root=MAIL&path=Blocked
prefs:root=MAIL&path=Muted%20Thread%20Action
prefs:root=MAIL&path=Blocked%20Sender%20Options
prefs:root=MAIL&path=Mark%20Addresses
prefs:root=MAIL&path=Increase%20Quote%20Level
prefs:root=MAIL&path=Include%20Attachments%20with%20Replies
prefs:root=MAIL&path=Signature
prefs:root=MAIL&path=Default%20Account
Contactos
prefs:root=CONTACTS
Calendario
prefs:root=CALENDAR
prefs:root=CALENDAR&path=Alternate%20Calendars
prefs:root=CALENDAR&path=Sync
prefs:root=CALENDAR&path=Default%20Alert%20Times
prefs:root=CALENDAR&path=Default%20Calendar
Notas
prefs:root=NOTES
prefs:root=NOTES&path=Default%20Account
prefs:root=NOTES&path=Password
prefs:root=NOTES&path=Sort%20Notes%20By
prefs:root=NOTES&path=New%20Notes%20Start%20With
prefs:root=NOTES&path=Sort%20Checked%20Items
prefs:root=NOTES&path=Lines%20%26%20Grids
prefs:root=NOTES&path=Access%20Notes%20from%20Lock%20Screen
Recordatorios
prefs:root=REMINDERS
prefs:root=REMINDERS&path=DEFAULT_LIST
Memos de voz
prefs:root=VOICE_MEMOS
Teléfono
prefs:root=Phone
Mensajes
prefs:root=MESSAGES
FaceTime
prefs:root=FACETIME
Mapas
prefs:root=MAPS
prefs:root=MAPS&path=Driving%20%26%20Navigation
prefs:root=MAPS&path=Transit
Brújula
prefs:root=COMPASS
Medida
prefs:root=MEASURE
Safari
prefs:root=SAFARI
prefs:root=SAFARI&path=Content%20Blockers
prefs:root=SAFARI&path=DOWNLOADS
prefs:root=SAFARI&path=Close%20Tabs
prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA
prefs:root=SAFARI&path=Page%20Zoom
prefs:root=SAFARI&path=Request%20Desktop%20Website
prefs:root=SAFARI&path=Reader
prefs:root=SAFARI&path=Camera
prefs:root=SAFARI&path=Microphone
prefs:root=SAFARI&path=Location
prefs:root=SAFARI&path=ADVANCED
Noticias
prefs:root=NEWS
Salud
prefs:root=HEALTH
Atajos
prefs:root=SHORTCUTS
Música
prefs:root=MUSIC
prefs:root=MUSIC&path=com.apple.Music:CellularData
prefs:root=MUSIC&path=com.apple.Music:OptimizeStorage
prefs:root=MUSIC&path=com.apple.Music:EQ
prefs:root=MUSIC&path=com.apple.Music:VolumeLimit
televisión
prefs:root=TVAPP
Fotos
prefs:root=Photos
Cámara
prefs:root=CAMERA
prefs:root=CAMERA&path=Record%20Video
prefs:root=CAMERA&path=Record%20Slo-mo
Libros
prefs:root=IBOOKS
Centro de juegos
prefs:root=GAMECENTER
fuente
UIApplicationOpenSettingsURLString
esto 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