web-dev-qa-db-ja.com

openURLを使用して設定アプリを開くことは可能ですか?

アプリが次のコードを使用して他のアプリを起動できることを知っています:[[UIApplication sharedApplication] openURL:appUrl];。そして、サファリとメールを開くためのURLのスキームを知っていますが、いくつかの検索を行ったところ、settings.appのスキームについては何も見つかりませんでした。

23
chenze

プログラムで設定アプリを開くことができます(これはiOS8以降でのみ機能します)。

Swiftを使用している場合:

    UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString))

Objective-Cを使用している場合

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

他の下位バージョン(iOS8未満)の場合、プログラムで設定アプリを開くことはできません。

33
Yatheesha B L

これはiOSバージョン5.0〜5.0.1で使用できます。その後、iOS5.1で非推奨になりました。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
16
davidcann

プログラムで設定アプリを開くことができるのはiOS8からのみです。したがって、 http://code-ios.blogspot.in/2014/10/opening-settings-app-from-another-app)の次のコードを使用してください。 html

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
{
 NSLog(@"buttonIndex:%d",buttonIndex);

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

Swift 4バージョン:

if let url = URL(string: UIApplicationOpenSettingsURLString) {
    UIApplication.shared.openURL(url)
}
1
jonaszmclaren