Настройки запуска iOS -> Схема URL ограничений - PullRequest
86 голосов
/ 23 ноября 2011

Я недавно обнаружил потрясающую схему пользовательских настроек iOS5 , которую можно подробно объяснить на этом замечательном сайте .

Я нашел этоработать, направляя пользователя в приложение «Настройки» из моего приложения:

[[UIApplication sharedApplication] openURL:
       [NSURL URLWithString:@"prefs:root=General"]];

Но, похоже, не удается напрямую направить на путь Ограничения через параметр path:

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

Кто-нибудь нашел документацию по этому или смог сделать эту работу?

Любое понимание будет с благодарностью.Я пытаюсь убедить пользователя включить встроенные покупки, и я не хочу, чтобы пользователь вручную нажимал на Ограничения (не очень очевидно).

Ответы [ 13 ]

140 голосов
/ 23 ноября 2011

AS @ Nix Wang ОТВЕТЬТЕ, ЧТО ЭТО НЕ РАБОТАЕТ IOS 10


ВНИМАНИЕ: Этот метод не будет работать для устройствпод управлением iOS 5.1 и выше - см. комментарий Хлунга ниже.

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

Список известных в настоящее время URL-адресов в приложении «Настройки»:

  • prefs: root= Общие & путь = О
  • prefs: root = General & path = ACCESSIBILITY
  • prefs: root = AIRPLANE_MODE
  • prefs: root = General & path = AUTOLOCK
  • prefs: root= Общие & путь = ИСПОЛЬЗОВАНИЕ / CELLULAR_USAGE
  • prefs: root = Brightness
  • prefs: root = General & path = Bluetooth
  • prefs: root = General & path = DATE_AND_TIME
  • prefs: root = FACETIME
  • prefs: root = General
  • prefs: root = General & path = Keyboard
  • prefs: root = CASTLE
  • prefs: root = CASTLE & path= STORAGE_AND_BACKUP
  • prefs: root = General & path = INTERNATIONAL
  • prefs: root = LOCATION_SERVICES
  • prefs: root = ACCOUNT_SETTINGS
  • prefs: root = MUSIC
  • prefs: root = MUSIC & path = EQ
  • prefs: root = MUSIC & path = VolumeLimit
  • prefs: root = General & path = Network
  • prefs: root = NIKE_PLUS_IPOD
  • prefs: root = NOTES
  • prefs: root = NOTIFICATIONS_ID
  • prefs: root = Телефон
  • prefs: root = Фотографии
  • prefs: root = General & path = ManagedConfigurationList
  • prefs: root = General & path = Reset
  • prefs: root = Sounds & path = Ringtone
  • prefs: root = Safari
  • prefs: root = General & path = Assistant
  • prefs: root = Sounds
  • prefs: root = General & path = SOFTWARE_UPDATE_LINK
  • prefs: root = STORE
  • prefs: root = TWITTER
  • prefs: root = General & path = USAGE
  • prefs: root = VIDEO
  • prefs: root= Общие и путь = Сеть / VPN
  • prefs: root = Обои
  • prefs: root = WIFI
  • prefs: root = INTERNET_TETHERING
47 голосов
/ 30 сентября 2014

Начиная с iOS8, вы можете открыть встроенное приложение Настройки с помощью:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
   [[UIApplication sharedApplication] openURL:url];
}

Фактическая строка URL-адреса @"app-settings:". Я попытался добавить в строку различные разделы («Bluetooth», «ОБЩИЕ» и т. Д.), Но, похоже, работает только ссылка на главный экран настроек. Оставьте ответ, если узнаете иначе.

42 голосов
/ 06 июля 2015

Если вы добавите схему URL prefs в свое приложение для iOS, это позволит вам использовать все те схемы, которые мы могли использовать в iOS 5. Я протестировал ее на iOS 9, но думаю, что она будет работать и на старых версиях ,

image

32 голосов
/ 08 августа 2016

Обновление:

prefs: НЕ будет работать с iOS 10.

22 голосов
/ 27 июня 2012

Да, видел это (и многое другое), даже реализовал его в тестовом приложении.Действительно нужно получить определенное слово от Apple, но общее мнение сообщества заключается в том, что Apple запретила его в 5.1 после того, как оно было публично «обнаружено / опубликовано», поэтому приложения, содержащие его, не будут приняты.

01.08.12 Обновление: Спросил у Apple через мою учетную запись разработчика, есть ли способ программно запустить диалог настроек WiFi.Вот ответ:

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

18 голосов
/ 29 сентября 2015

В iOS 9 снова работает!

Чтобы открыть Настройки> Общие> Клавиатура , я использую:

prefs:root=General&path=Keyboard

Более того,можно пойти дальше к Клавиатурам :

prefs:root=General&path=Keyboard/KEYBOARDS
7 голосов
/ 23 июля 2015

Я хотел открыть меню Bluetooth в приложении настроек, и вышеуказанный путь (prefs: root = General & path = Bluetooth) у меня не работал.То, что в итоге помогло мне, было

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

Убедитесь, что у вас сначала определена схема URL prefs.

5 голосов
/ 10 февраля 2017

Решение для iOS10.Работает нормально.

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
4 голосов
/ 06 февраля 2017

Начиная с iOS10, вы можете использовать

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!) 

, чтобы открыть общие настройки.

также вы можете добавить к нему известные URL-адреса (вы можете увидеть их в наиболее голосуемом ответе), чтобы открытьконкретные настройки.Например, ниже открывается TouchID и пароль.

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
2 голосов
/ 08 октября 2017

iOS 10

Использование app-prefs:

App-prefs:root=MOBILE_DATA_SETTINGS_ID

См. Гист

...