Как запустить пакет настроек из моего приложения? - PullRequest
5 голосов
/ 03 декабря 2008

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

Ответы [ 6 ]

9 голосов
/ 03 декабря 2008

Им может потребоваться перейти в приложение настроек, в зависимости от того, как вы это делаете.

См. этот документ, раздел Настройки приложений. Вот соответствующий раздел из введения:

Добавление предпочтений вашего приложения в приложение «Настройки» наиболее подходит для приложений в стиле производительности и в ситуациях, когда у вас есть значения предпочтений, которые обычно настраиваются один раз, а затем редко меняются. Например, приложение «Почта» использует эти настройки для хранения информации об учетной записи пользователя и настроек проверки сообщений. Поскольку приложение «Настройки» поддерживает иерархическое отображение настроек, управление вашими настройками из приложения «Настройки» также более уместно, если у вас есть большое количество настроек. Предоставление одного и того же набора настроек в вашем приложении может потребовать слишком большого количества экранов и может привести пользователя в замешательство.

Если в вашем приложении есть только несколько параметров или параметры, которые пользователь может регулярно менять, вам следует тщательно продумать, подходит ли им приложение «Настройки». Например, служебные приложения предоставляют настраиваемые параметры конфигурации на обратной стороне основного представления. Специальный элемент управления в представлении переворачивает его для отображения параметров, а другой элемент управления переворачивает представление назад. Для простых приложений этот тип поведения обеспечивает немедленный доступ к настройкам приложения и гораздо удобнее для пользователя, чем переход в Настройки.

Обновление

Срок действия ссылки истек. Это аналогичный документ в настройках.

5 голосов
/ 20 марта 2012

Для iOs5 вы можете открыть настройки напрямую:

[[UApplication sharedApplication] openURL: [NSURL URLWithString: @ "prefs: //"]];

4 голосов
/ 15 января 2009

Ответил на мой собственный вопрос: вы действительно можете использовать NSUserDefaults для сохранения ваших собственных настроек приложений без необходимости интеграции с настройками системы.

Например, мое приложение представляет собой приложение Utility с небольшим пользовательским интерфейсом для пары настроек на панели FlipSide (вид, который пользователь получает при нажатии кнопки «i»).

Обратите внимание, что я нашел эту информацию из двух источников.

  1. В большой серии отчетов от iPhone BootCamp Скотт Леберкнайт мимоходом упоминает, что его учили, что пользовательские настройки приложения по умолчанию могут или не могут интегрироваться в приложение настроек.

  2. Образец кода со страницы официального разработчика iphone для BubbleLevel использует настройки для хранения калибровки уровня (который задается в режиме обратного обзора)

Вот методы в LevelAppDelegate.m, которые загружают предпочтение при запуске приложения и сохраняют его при завершении:

// Invoked after the application has been launched and initialized but before it has received its first event.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // Set up the level view controller
    levelViewController = [[LevelViewController alloc] init];
    [window addSubview:levelViewController.view];

    // Restore calibration for device
    float restoredOffset = [[NSUserDefaults standardUserDefaults] floatForKey:BubbleLevelCalibrationOffsetKey];
    levelViewController.calibrationOffset = restoredOffset;
}


// Invoked immediately before the application terminates.
- (void)applicationWillTerminate:(UIApplication *)application {
    float calibrationOffset = levelViewController.calibrationOffset;
    NSNumber *offset = [NSNumber numberWithFloat:calibrationOffset];
    [[NSUserDefaults standardUserDefaults] setObject:offset forKey:BubbleLevelCalibrationOffsetKey];
}

Полагаю, однако, что правильный ответ на оригинальный вопрос:

  1. Нет - вы не можете запустить пользовательский интерфейс настроек из своего собственного приложения (я не видел никакого способа сделать это - я могу ошибаться - но я вполне уверен, что даже если бы вы могли запустить В настройках вашего приложения, например, можно использовать URL-адрес для запуска Safari - вы не сможете вернуть своему приложению из приложения «Настройки», что не поможет этой цели).

  2. Для сохранения уровня предпочтения (в отличие от данных приложения, сохраняемых в документах, базе данных или кэше), у вас есть 2 варианта я) использовать приложение системных настроек для редактирования II) создать свои собственные элементы управления в вашем приложении

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

2 голосов
/ 19 апреля 2011

Я не знаю ни одного способа запуска Settings.app из вашего приложения. Однако почему бы не интегрировать настройки прямо в ваше приложение? Вы можете использовать InAppSettingsKit , чтобы сделать это очень легко.

1 голос
/ 01 октября 2009

Я только что видел, как приложение Aka-aki привело меня прямо к экрану push-уведомлений приложения Настройки. Это было сделано в первый раз, когда я запустил его. Так что это должно быть возможно. :)

1 голос
/ 03 декабря 2008

Нет, вы не можете - им придется выйти из вашего приложения и запустить настройки. Это боль, и, как указано выше, вам придется принять дизайнерское решение.

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