J'ai récemment découvert l'impressionnant schéma d'URL des paramètres personnalisés iOS5 , qui peut être expliqué en détail sur ce site Web génial .
J'ai trouvé que cela fonctionnait, en dirigeant l'utilisateur vers l'application Paramètres à partir de mon application:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
Mais ne semble pas pouvoir acheminer directement vers le chemin des restrictions via le path
paramètre:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
Quelqu'un a-t-il trouvé de la documentation à ce sujet ou a-t-il pu faire ce travail?
Toute idée serait grandement apprécié. J'essaie de demander à l'utilisateur d'activer les achats dans l'application et je préfère ne pas que l'utilisateur clique manuellement sur Restrictions (pas très évident).
ios
iphone
settings
url-scheme
uiapplication
kturner
la source
la source
Réponses:
COMME LA RÉPONSE DE @Nix Wang , CELA NE FONCTIONNE PAS DANS IOS 10
AVERTISSEMENT: cette méthode ne fonctionnera pas pour les appareils exécutant iOS 5.1 et supérieur - Voir le commentaire de Hlung ci-dessous.
Il est possible que le
path
composant ait un nom différent de celui de la section réelle, mais il est également possible que vous ne puissiez actuellement pas accéder à cette section directement à partir d'une URL. J'ai trouvé une liste d'URL possibles et les restrictions ne figurent pas dessus, peut-être que ce n'est tout simplement pas encore découvert.Liste des URL actuellement connues dans l'application Paramètres:
la source
[NSURL URLWithString:UIApplicationOpenSettingsURLString]
À partir d'iOS8, vous pouvez ouvrir l'application Paramètres intégrée avec:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }
La chaîne URL réelle est
@"app-settings:"
. J'ai essayé d'ajouter différentes sections à la chaîne ("Bluetooth", "GENERAL", etc.) mais il semble que le lien vers l'écran principal des paramètres fonctionne. Postez une réponse si vous découvrez le contraire.la source
Si vous ajoutez le schéma d'URL prefs à votre application iOS, cela vous permettra d'utiliser tous ces schémas que nous pourrions dans iOS 5. Je l'ai testé sur iOS 9, mais je pense que cela fonctionnera également sur les anciennes versions.
la source
Mise à jour:
prefs:
ne fonctionnera PAS depuis iOS 10.la source
prefs:
ne fonctionne plus, ce qui suit (du moins en ouverture générale):App-Prefs::root=Settings&path=General
Oui, j'ai vu cela (et bien d'autres), même mis en œuvre dans une application de test. Il faut vraiment obtenir le mot définitif d'Apple, mais l'opinion consensuelle de la communauté est qu'Apple l'a interdit en 5.1 après qu'il ait été publiquement "découvert / publié", donc les applications qui le contiennent ne seront pas acceptées.
Mise à jour du 01/08/12: J'ai demandé à Apple via mon compte développeur s'il existe un moyen de lancer par programme la boîte de dialogue Paramètres WiFi Voici la réponse:
la source
Dans iOS 9, cela fonctionne à nouveau!
Pour ouvrir Paramètres> Général> Clavier , j'utilise:
prefs:root=General&path=Keyboard
De plus, il est possible d'aller plus loin vers les claviers :
prefs:root=General&path=Keyboard/KEYBOARDS
la source
LSApplicationQueriesSchemes
eninfo.plist
?Je voulais ouvrir le menu Bluetooth dans l'application Paramètres et le chemin ci-dessus (prefs: root = General & path = Bluetooth) ne fonctionnait pas pour moi. Ce qui a fini par fonctionner pour moi était
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
Assurez-vous que le
prefs
schéma d'URL est défini en premier.la source
prefs
trucs.Solution pour iOS10. Fonctionne très bien.
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"]; [[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
la source
À partir d'iOS10, vous pouvez utiliser
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
pour ouvrir les paramètres généraux.
vous pouvez également y ajouter des URL connues (vous pouvez les voir dans la réponse la plus votée) pour ouvrir des paramètres spécifiques. Par exemple, celui ci-dessous ouvre touchID et mot de passe.
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
la source
App-Prefs
est une API privée qui entraînera le rejet de l'application lors de l'examen.Voici autre chose que j'ai trouvé:
Après avoir défini le schéma d'URL "prefs", "prefs: root = Safari & path = ContentBlockers" fonctionne sur Simulator (iOS 9.1 en anglais ), mais pas sur Simulator (chinois simplifié) . Cela passe simplement à Safari, mais pas aux bloqueurs de contenu. Si votre application est internationale, soyez prudent.
Mise à jour: Je ne sais pas pourquoi, maintenant je ne peux plus sauter dans ContentBlockers, le même code, la même version, ne fonctionne plus maintenant. :(
Sur de vrais devcies (le mien est l'iPhone 6S et l'iPad mini 2), "Safari" devrait être "SAFARI" , "Safari" ne fonctionne pas sur un appareil réel, "SAFARI" fonctionne maintenant sur le simulateur:
#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) }
Jusqu'à présent, n'a trouvé aucune différence entre l'iPhone et l'iPad.
la source
Fonctionne bien pour les paramètres de notification d'application sur IOS 10 (testé)
if(&UIApplicationOpenSettingsURLString != nil){ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }
la source
iOS 10
Utilisation
app-prefs:
App-prefs:root=MOBILE_DATA_SETTINGS_ID
Voir l' essentiel
la source
Je mets à jour une nouvelle ici. L'utilisation de 'prefs:' n'est PAS rejetée par Apple, je l'ai testé et vérifié comme approuvé dans l'App Store (en août 2016). Merci.
la source
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];
pour ouvrir le réglage DND de l'appareil. Apple rejettera cela?