46 votes

Appeler l'application officielle *Settings* depuis mon application sur l'iPhone

À un moment donné dans mon application, j'aimerais rediriger l'utilisateur vers le site officiel de la Commission européenne. Paramètres app. Si possible, je veux aussi aller directement à l'application Réseau dans la section Paramètres app.

Je pense que ce dont j'ai besoin est le Paramètres le schéma d'url de l'application et le format pour construire ma requête. Mais je doute qu'appeler une telle application officielle soit interdit.

Quelqu'un peut-il m'aider ?

44voto

mpstx Points 793

Comme indiqué dans les commentaires ci-dessous, cela n'est plus possible à partir de la version 5.1 d'iOS.

Si vous êtes sous iOS 5.0, les points suivants s'appliquent :

Cela est maintenant possible dans iOS 5 en utilisant le schéma d'url 'prefs:'. Cela fonctionne à partir d'une page web ou d'une application.

exemples d'urls :

prefs:root=General
prefs:root=General&path=Network

utilisation de l'échantillon :

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]]
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Network"]]

35voto

dynebuddha Points 46

Depuis IOS 8, vous pouvez appeler les paramètres à partir de l'application avec ceci :

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

17voto

Slemon Points 751

Cela fonctionne également dans les versions iOS > 5.1, mais vous devez ajouter un schéma d'URL dans les types d'URL dans Xcode :

enter image description here

Vous pouvez alors utiliser

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

Il peut ouvrir le système de réglage WiFi maintenant.

Autre chemin s'il vous plaît trouver dans cette réponse : Lancement de l'iOS Paramètres -> Restrictions Schéma URL .

15voto

Di Wu Points 4714

Mauvaise nouvelle : Comme @Hlung et @jasongregori l'ont suggéré, pour les iDevices dont la version du système d'exploitation >= iOS 5.1 && < iOS 8.0 il y a encore une fois NON moyen officiel/documenté d'appeler l'application Paramètres intégrée à partir d'une application tierce. Période.

13voto

L'appel de l'application Paramètres depuis une autre application n'est possible qu'à partir d'iOS 8. Utilisez donc le code suivant

if([CLLocationManager locationServicesEnabled]&&
   [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied)
{
  //...Location service is enabled
}
else
{
    if([[[UIDevice currentDevice] systemVersion] floatValue]<8.0)
    {
      UIAlertView* curr1=[[UIAlertView alloc] initWithTitle:@"This app does not have access to Location service" message:@"You can enable access in Settings->Privacy->Location->Location Services" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
      [curr1 show];
    }
    else
    {
       UIAlertView* curr2=[[UIAlertView alloc] initWithTitle:@"This app does not have access to Location service" message:@"You can enable access in Settings->Privacy->Location->Location Services" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Settings", nil];
       curr2.tag=121;
       [curr2 show];
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   if (alertView.tag == 121 && buttonIndex == 1)
 {
  //code for opening settings app in iOS 8
   [[UIApplication sharedApplication] openURL:[NSURL  URLWithString:UIApplicationOpenSettingsURLString]];
 }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X