Как открыть приложение «Настройки», когда пользователь нажимает кнопку? - PullRequest
9 голосов
/ 04 ноября 2010

Из того, что я понимаю, используя такой код:

NSURL* appUrl = [NSURL URLWithString: @"URL"];
[[UIApplication sharedApplication] openURL:appUrl];

Я могу открыть Map, YouTube, Safari, Mail, iTunes и App Store, когда пользователь скажет, что нажимает кнопку.

Но мне было интересно, можно ли открыть приложение «Настройки» с помощью этого метода.

По сути, когда пользователь впервые открывает мое приложение, я хочу, чтобы всплыло окно UIAlertView, чтобы пользователь знал, что он можетизмените конкретную настройку, если хотите, и либо они нажимают OK, либо нажимают настройки, чтобы перенести их в приложение настроек.

Я знаю, что Apple делает это в некоторых ситуациях, но возможно ли это сделать разработчикам?

Ответы [ 6 ]

16 голосов
/ 04 ноября 2010

Согласно ответу @ bnduati, в iOS 8 вы можете использовать следующий код для открытия настроек вашего приложения в приложении настроек:

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

Старый ответ:

ОтiOS 5.1 через iOS 7, было невозможно открыть приложение настроек из другого приложения.

Возможно, вы захотите изучить эту платформу для обеспечения настроек в приложении.

Есть еще несколько вопросов, которые обсуждают эту тему:

iPhone - как поместить пакет настроек, видимый через приложение «Настройки системы», в ваше собственное приложение?

Запустить экран настроек iPhone из приложения?

Как отправить пользователя на основной экран настроек iPhone из приложения iPhone

9 голосов
/ 14 августа 2014

В iOS 8 и более поздних версиях вы можете отправить пользователя в настройки вашего приложения следующим образом:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
6 голосов
/ 15 октября 2011

Вы можете использовать это на iOS 5.0 и более поздних версиях:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
3 голосов
/ 04 ноября 2010

Я не знаю, возможно ли это или нет, но одна проблема заключается в том, что пользователю необходимо будет вернуться к вашему приложению. Вместо этого у вас может быть свое собственное представление настроек, которое может записывать в тот же файл, который приложение предпочтений будет использовать с помощью NSUserDefaults.

[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];

[[NSUserDefaults standardUserDefaults] stringForKey:key]

1 голос
/ 10 июня 2015

Синтаксис Swift:

UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
0 голосов
/ 28 июня 2017

Свифт 3

private func showAlertPrivacy() {
    let alertController = UIAlertController(title: nil, message: "messagePrivacy", preferredStyle: .alert)
    let alertNo = UIAlertAction(title: "No", style: .default) { (_) in

    }
    alertController.addAction(alertNo)

    let alertSetting = UIAlertAction(title: "Settings", style: .default) { (_) in

        UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: { (_) in

        })
    }
    alertController.addAction(alertSetting)

    present(alertController, animated: true) { 

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...