it-swarm.com.de

Rufen Sie die offizielle * Settings * -App aus meiner App auf dem iPhone auf

An einer Stelle in meiner App möchte ich den Benutzer auf die offiziellen Einstellungen App umleiten. Wenn möglich, möchte ich auch direkt in die Network - Sektion innerhalb der Settings App gehen.

Ich denke, ich brauche das URL-Schema der Settings App und das Format, um meine Anfrage zu erstellen. Ich bezweifle jedoch, dass das Aufrufen einer solchen offiziellen App verboten ist.

Kann mir jemand helfen?

45
Di Wu

Schlechte Nachrichten: Wie @Hlung und @jasongregori vorgeschlagen haben, gibt es für iDevices, deren Betriebssystemversion> = iOS 5.1 && <iOS 8.0 , noch einmalKEINEoffizielle/dokumentierte Methode, um das eingebaute aufzurufen Einstellungs-App von einer Drittanbieter-App. Zeitraum.

15
Di Wu

Wie in den folgenden Kommentaren erwähnt, ist dies in iOS ab Version 5.1 nicht mehr möglich.

Wenn Sie mit iOS 5.0 arbeiten, gilt Folgendes:

Dies ist jetzt in iOS 5 mit dem URL-Schema 'prefs:' möglich. Es funktioniert von einer Webseite oder von einer App.

beispiel-URLs:

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

verwendungsbeispiel:

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

Von IOS 8 aus können Sie die Einstellungen innerhalb der App folgendermaßen aufrufen: 

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

35
dynebuddha

Es funktioniert auch in iOS-Version> 5.1, aber Sie müssen ein URL-Schema in URL-Typen in Xcode hinzufügen:

enter image description here

Dann kannst du verwenden 

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

Es kann System-WLAN-Einstellung öffnen jetzt.

Einen anderen Pfad finden Sie in dieser Antwort: iOS-Starteinstellungen -> Einschränkungen URL-Schema .

17
Slemon

Das Aufrufen der Einstellungs-App von einer anderen App ist nur von iOS 8 aus möglich. Verwenden Sie den folgenden Code

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]];
 }
}
13

von iOS 8 aus können Sie mit umleiten

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

genieße Codierung

5
Mohit tomar

Für Einstellungen in iOS 9 ist das für mich gearbeitet.

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

Stellen Sie jedoch sicher, dass Sie ein URL-Schema in URL-Typen hinzufügen

Registerkarte "Info" in App-Zielen.

Nur eine zusätzliche Antwort, die Sie Ihrem iOS8 + hinzufügen können. Wenn Sie etwas unter 8 unterstützen, sollten Sie prüfen, ob es unterstützt wird

BOOL canGoToSettings = (UIApplicationOpenSettingsURLString != NULL);
if (canGoToSettings)
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
0
Chris

Für iOS 10 können Sie Folgendes verwenden:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=Settings"]];

Es funktioniert auch auf iOS 9!

0
Ivan Skrobot