Как открыть приложение "Настройки", когда пользователь нажимает кнопку?
Из того, что я понимаю, используя такой код:
NSURL* appUrl = [NSURL URLWithString: @"URL"];
[[UIApplication sharedApplication] openURL:appUrl];
Я могу открыть Map, YouTube, Safari, Mail, iTunes и App Store, когда пользователь нажимает кнопку.
Но мне было интересно, можно ли открыть приложение Настройки с помощью этого метода.
По сути, когда пользователь впервые открывает мое приложение, я хочу, чтобы всплывающее окно UIAlertView показывало пользователю, что он может изменить определенный параметр, если он этого хочет, и либо нажимает ОК, либо нажимает настройки, чтобы перенести их в приложение настроек.
Я знаю, что Apple делает это в некоторых ситуациях, но возможно ли это сделать разработчикам?
6 ответов
Согласно ответу @bnduati, в iOS 8 вы можете использовать следующий код, чтобы открыть настройки вашего приложения в приложении настроек:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
Старый ответ:
С iOS 5.1 до iOS 7 было невозможно открыть приложение настроек из другого приложения.
Возможно, вы захотите изучить эту платформу для обеспечения настроек в приложении.
Есть довольно много других вопросов, которые обсуждают эту тему:
Запустить экран настроек iPhone из приложения?
Как отправить пользователя на главный экран настроек iPhone из приложения iPhone
В iOS 8 и более поздних версиях вы можете отправить пользователя в настройки вашего приложения следующим образом:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
Вы можете использовать это на iOS 5.0 и более поздних версиях:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
Я не знаю, возможно ли это или нет, но одна проблема заключается в том, что пользователю необходимо будет вернуться к вашему приложению. Вместо этого вы можете иметь свое собственное представление настроек, которое может записывать в тот же файл, который приложение предпочтений будет использовать с помощью NSUserDefaults.
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
[[NSUserDefaults standardUserDefaults] stringForKey:key]
Быстрый Синтаксис:
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
Свифт 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) {
}
}