D'accord, je sais qu'il y a beaucoup de questions à ce sujet, mais elles datent toutes d'il y a longtemps.
Alors. Je sais que c'est possible parce que l'application Map le fait.
Dans l'application Carte, si je désactive la localisation de cette application, elle m'envoie un message et si j'appuie sur OK, l'application "Paramètres" s'ouvre. Et ma question est, comment est-ce possible? Comment puis-je ouvrir l'application "Paramètres" depuis ma propre application?
Fondamentalement, je dois faire la même chose, si l'utilisateur désactive l'emplacement de mon application, je lui montrerai un message disant quelque chose qui ouvrira l'application "Paramètres de l'application"
ios
objective-c
iphone
application-settings
appsettings
FelipeDev.-
la source
la source
Réponses:
Comme l'a dit Karan Dua cela est maintenant possible iOS8 utilisant
UIApplicationOpenSettingsURLString
voir la documentation d'Apple .Exemple:
Swift 4.2
Dans Swift 3:
Dans Swift 2:
En Objective-C
Avant iOS 8:
Vous ne pouvez pas. Comme vous l'avez dit, cela a été couvert à de nombreuses reprises et cette fenêtre vous demandant d'activer les services de localisation est fournie par Apple et non par l'application elle-même. C'est pourquoi il est capable d'ouvrir l'application des paramètres.
Voici quelques questions et articles connexes:
est-il possible d'ouvrir l'application Paramètres en utilisant openURL?
Ouverture par programme de l'application des paramètres (iPhone)
Comment puis-je ouvrir l'application Paramètres lorsque l'utilisateur appuie sur un bouton?
iPhone: ouverture du panneau des préférences de l'application depuis l'application
Ouvrez UIPickerView en cliquant sur une entrée dans les préférences de l'application - Comment faire?
Ouvrez l'application Paramètres?
iOS: vous faites des réglages erronés
la source
D' après la réponse de @Yatheeshaless :
Vous pouvez ouvrir l'application de paramètres par programme dans iOS8, mais pas dans les versions antérieures d'iOS.
Rapide:
Swift 4:
Swift 4.2 (BÊTA):
Objectif c:
la source
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
OUI!! vous pouvez lancer l'écran Paramètres de l'appareil, j'ai testé sur iOS 9.2
Étape 1. nous devons ajouter des schémas d'URL
Accédez aux paramètres du projet -> Info -> Types d'URL -> Ajouter de nouveaux schémas d'URL
Étape 2. Lancez les paramètres par programme grâce à @davidcann
Nous pouvons également lancer des sous-écrans tels que Musique, Localisation, etc. en utilisant simplement le nom propre
Voir cette liste de noms complète ici partagée par Henri Normak
Mettre à jour:
Selon le commentaire, tout le monde veut savoir ce qui se passe après ce changement de statut de soumission de candidature?
Alors
YES!! I got successful update submission and application is available on store without any complain.
Juste pour confirmer, je viens de télécharger ce matin et j'ai désactivé les services de localisation, puis j'ai démarré l'application, qui m'a demandé l'autorisation de localisation, puis ma fenêtre contextuelle d'alerte était là pour m'envoyer sur les paramètres -> page des services de localisation -> Activé -> C'est tout!!
! [AVIS: Votre application pourrait être rejetée ... même si elle est approuvée, elle pourra être rejetée dans la version future si vous utilisez cette méthode ...] 4
la source
Vous pouvez l'utiliser sur iOS 5.0 et versions ultérieures:cela ne fonctionne plus.la source
prefs:root=General&path=Bluetooth
Mise à jour iOS 10
Apple a changé la méthode pour ouvrir async sur le thread principal. Cependant, à partir de maintenant, il n'est possible d'ouvrir les paramètres de l'application que dans les paramètres natifs.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
Mise à jour iOS 9
Il est désormais possible d'accéder directement au menu des sous-paramètres. Cependant, un schéma d'URL doit être créé. Cela peut être fait de deux manières:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>
Puis le code:
Rapide
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)
Objectif c
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
la source
Magic Launcher
dans l'Appstore.Dans Swift 3 / iOS 10+, cela ressemble maintenant à
la source
Swift 3:
la source
On dirait que vous pouvez utiliser l'
prefs:<area>
URL pour ouvrir les paramètres et accéder à des zones spécifiques. Apple pourrait les modifier et casser votre application, alors vérifiez toujours si vous pouvez les ouvrir en premier.À partir de cet article, ils en ont répertorié certains pour iOS 13.1:
URL des paramètres
iCloud
prefs:root=CASTLE
prefs:root=CASTLE&path=BACKUP
Radios sans fil
prefs:root=WIFI
prefs:root=Bluetooth
prefs:root=MOBILE_DATA_SETTINGS_ID
Hotspot personnel
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
Notifications
prefs:root=NOTIFICATIONS_ID
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
Des sons
prefs:root=Sounds
prefs:root=Sounds&path=Ringtone
Ne pas déranger
prefs:root=DO_NOT_DISTURB
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
Temps d'écran
prefs:root=SCREEN_TIME
prefs:root=SCREEN_TIME&path=DOWNTIME
prefs:root=SCREEN_TIME&path=APP_LIMITS
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
Général
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
Centre de contrôle
prefs:root=ControlCenter
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
Afficher
prefs:root=DISPLAY
prefs:root=DISPLAY&path=AUTOLOCK
prefs:root=DISPLAY&path=TEXT_SIZE
Accessibilité
prefs:root=ACCESSIBILITY
Fond d'écran
prefs:root=Wallpaper
Siri
prefs:root=SIRI
Crayon Apple
prefs:root=Pencil
ID de visage
prefs:root=PASSCODE
SOS d'urgence
prefs:root=EMERGENCY_SOS
Batterie
prefs:root=BATTERY_USAGE
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
Intimité
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\
Magasin d'applications
prefs:root=STORE
prefs:root=STORE&path=App%20Downloads
prefs:root=STORE&path=Video%20Autoplay
Portefeuille
prefs:root=PASSBOOK
Mots de passe et comptes
prefs:root=ACCOUNTS_AND_PASSWORDS
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
Courrier
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
Contacts
prefs:root=CONTACTS
Calendrier
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
Remarques
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
Rappels
prefs:root=REMINDERS
prefs:root=REMINDERS&path=DEFAULT_LIST
Mémos vocaux
prefs:root=VOICE_MEMOS
Téléphone
prefs:root=Phone
messages
prefs:root=MESSAGES
FaceTime
prefs:root=FACETIME
Plans
prefs:root=MAPS
prefs:root=MAPS&path=Driving%20%26%20Navigation
prefs:root=MAPS&path=Transit
Boussole
prefs:root=COMPASS
Mesure
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
Nouvelles
prefs:root=NEWS
Santé
prefs:root=HEALTH
Raccourcis
prefs:root=SHORTCUTS
La musique
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
la télé
prefs:root=TVAPP
Photos
prefs:root=Photos
Caméra
prefs:root=CAMERA
prefs:root=CAMERA&path=Record%20Video
prefs:root=CAMERA&path=Record%20Slo-mo
Livres
prefs:root=IBOOKS
Centre de jeu
prefs:root=GAMECENTER
la source
UIApplicationOpenSettingsURLString
cela ne fonctionnera que si vous avez préalablement autorisé une autorisation. Par exemple, emplacement, photo, contact, accès aux notifications push. Donc, si vous n'avez pas de telles autorisations de l'utilisateur:Si iOS 10 ou supérieur ,
Il ouvrira les paramètres mais le plantera. La raison, il n'y a rien dans les paramètres de votre application.
Le code ci-dessous ouvrira les paramètres de votre application dans les paramètres iOS.
En raison de l'indisponibilité de l'appareil, je n'ai pas pu vérifier cela sur iOS <10.
En outre, je pourrais trouver ci-dessous du code à partir de l'essentiel et cela fonctionne également bien sur iOS 10. Mais je ne sais pas si cela sera approuvé par l'équipe d'examen Apple ou non.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
la source
Dans Swift 3, tout ce dont j'avais besoin est le suivant (ici par exemple, rediriger vers les notifications de mon application):
Source: phynet gist .
Cela a fonctionné avec moi uniquement lorsque les paramètres sont en arrière-plan. Il vous redirigera vers les paramètres de notification de votre application, mais si les paramètres ne fonctionnaient pas en arrière-plan, il vous redirigera simplement vers les paramètres de notification en général.
la source
Vous pouvez utiliser le code ci-dessous pour cela.
la source
SWIFT 4.0
la source
Swift 4
Je préfère ouvrir le décor de manière plus sûre,
la source
Swift Vous pouvez utiliser la fonction suivante pour ouvrir l'application Paramètres avec la page Bluetooth
Encore une fois, cela n'ouvrirait pas les paramètres de l'application. Cela ouvrirait l'application de paramètres avec Bluetooth car il s'agit d'un lien profond vers Bluetooth.
la source
Testé avec iOS 10. Fonctionnement
Bon codage :)
la source
Pour ajouter à la réponse acceptée: (à partir de la documentation du développeur Apple) "Lorsque vous ouvrez l'URL créée à partir de cette chaîne (openSettingsURLString), le système lance l'application Paramètres et affiche les paramètres personnalisés de l'application, le cas échéant." Donc, si vous souhaitez ouvrir les paramètres de votre application, créez votre propre Settings.bundle.
la source
Ajoutez ceci à votre classe,
Appelez comme ça,
la source