Как открыть приложение "Настройки", когда пользователь нажимает кнопку?

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

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 из приложения 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) { 

    }
}
Другие вопросы по тегам