Настройки запуска iOS → Схема URL-адресов ограничений
Недавно я обнаружил удивительную схему URL-адресов настроек IOS5, которая подробно объясняется на этом замечательном веб-сайте .
Я нашел, что это работает, направляя пользователя в приложение "Настройки" из моего приложения:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
Но не может показаться, что он направляется непосредственно к пути Ограничения с помощью параметра path
:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
Кто-нибудь нашел документацию по этому поводу или смог выполнить эту работу?
Любое понимание было бы весьма полезным. Я пытаюсь забрать пользователя для включения покупки в приложении, и не хотел бы, чтобы пользователь вручную нажимал "Ограничения" (не очень очевидно).
Ответы
Ответ 1
AS @Nix Wang ОТВЕТЬТЕ ЭТО НЕ РАБОТАЕТ В IOS 10
ПРЕДУПРЕЖДЕНИЕ: этот метод не будет работать для устройств под управлением iOS 5.1 и выше - см. комментарий Hlung ниже.
Возможно, что компонент path
имеет другое имя, чем фактический раздел, но также возможно, что вы не можете получить доступ к этому разделу прямо из URL-адреса. Я нашел список возможных URL-адресов, а ограничений нет, возможно, он еще не выяснен.
Список известных в настоящее время URL-адресов в приложении "Настройки":
- префы: корень = General & путь = О
- prefs: root = General & path = ACCESSIBILITY
- префы: корень = AIRPLANE_MODE
- prefs: root = Общие и путь = AUTOLOCK
- prefs: root = Общие & путь = ИСПОЛЬЗОВАНИЕ /CELLULAR _USAGE
- prefs: root = Яркость
- prefs: root = General & path = Bluetooth
- префы: корень = General & путь = DATE_AND_TIME
- prefs: root = FACETIME
- префы: корень = Общие
- prefs: root = General & path = Клавиатура
- префы: корень = ЗАМОК
- prefs: root = CASTLE & путь = STORAGE_AND_BACKUP
- prefs: root = General & path = INTERNATIONAL
- prefs: root = LOCATION_SERVICES
- префы: корень = ACCOUNT_SETTINGS
- prefs: root = MUSIC
- префы: корень = МУЗЫКА & путь = EQ
- prefs: root = MUSIC & path = VolumeLimit
- prefs: root = Общие & путь = Сеть
- prefs: root = NIKE_PLUS_IPOD
- prefs: root = ПРИМЕЧАНИЯ
- префы: корень = NOTIFICATIONS_ID
- префы: корень = Телефон
- prefs: root = Фотографии
- prefs: root = General & path = ManagedConfigurationList
- prefs: root = General & path = Reset
- prefs: root = Звуки & путь = Мелодия
- префы: корень = Safari
- prefs: root = General & path = Assistant
- префы: корень = Звуки
- prefs: root = General & path = SOFTWARE_UPDATE_LINK
- prefs: root = STORE
- префы: корень = TWITTER
- префы: корень = General & путь = ИСПОЛЬЗОВАНИЕ
- prefs: root = VIDEO
- префы: корень = General & путь = Сеть /VPN
- prefs: root = Обои
- префы: корень = WIFI
- префы: корень = INTERNET_TETHERING
Ответ 2
Начиная с iOS8 вы можете открыть встроенное приложение "Настройки":
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
Фактическая строка URL @"app-settings:"
. Я попытался добавить в строку различные разделы ( "Bluetooth", "GENERAL" и т.д.), Но похоже, что работает только ссылка на главный экран настроек. Отправьте ответ, если вы обнаружите иное.
Ответ 3
Если вы добавите схему URL prefs в приложение iOS, это позволит вам использовать все те схемы, которые мы могли бы использовать в iOS 5. Я тестировал его на iOS 9, но я думаю, что он будет работать и в более старых версиях,
![MNNPS.png]()
Ответ 4
Update:
prefs:
НЕ будет работать с iOS 10.
Ответ 5
Да, видел это (и многое другое), даже реализовал его в тестовом приложении. На самом деле нужно получить окончательное слово от Apple, но мнение сообщества по консенсусу Apple запретило его в 5.1 после публичного "открытия/публикации", поэтому заявки, содержащие его, не будут приняты.
08/01/12 Обновление:. Спросил Apple через мою учетную запись разработчика, если есть способ программно запустить диалог настроек WiFi. Вот ответ:
"Наши инженеры рассмотрели ваш запрос и пришли к выводу, что нет поддерживаемого способа достижения желаемой функциональности текущие конфигурации системы доставки."
Ответ 6
В iOS 9 он снова работает!
Чтобы открыть Настройки > Общие > Клавиатура, я использую:
prefs:root=General&path=Keyboard
Кроме того, можно перейти дальше к Клавиатурам:
prefs:root=General&path=Keyboard/KEYBOARDS
Ответ 7
Я хотел открыть меню Bluetooth в приложении "Настройки", и вышеуказанный путь (prefs: root = General & path = Bluetooth) не работал у меня.
То, что закончилось для меня, было
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
Удостоверьтесь, что вы сначала определили схему URL prefs
.
Ответ 8
Решение для iOS10. Прекрасно работает.
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
Ответ 9
Начиная с iOS10 вы можете использовать
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
чтобы открыть общие настройки.
Кроме того, вы можете добавить известные URL-адреса (вы можете увидеть их в самом верхнем ответе), чтобы открыть определенные настройки. Например, нижеследующий открывает touchID и код доступа.
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
Ответ 10
Вот что я нашел:
-
После определения URL-схемы "prefs" "prefs: root = Safari & path = ContentBlockers" работает над Simulator (iOS 9.1 Английский), но не работает на Simulator (упрощенный китайский). Он просто прыгает в Safari, но не блокирует контент. Если ваше приложение является международным, будьте осторожны.
Обновление: не знаю, почему, теперь я больше не могу входить в ContentBlockers, тот же код, такая же версия, теперь не работает.: (
-
На реальных devcies (мой iPhone 6S и iPad mini 2), "Safari" должен быть "SAFARI" , "Safari" не работает на реальном устройстве, "SAFARI" теперь работает на симуляторе:
#if arch(i386) || arch(x86_64)
// Simulator
let url = NSURL(string: "prefs:root=Safari")!
#else
// Device
let url = NSURL(string: "prefs:root=SAFARI")!
#endif
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
-
До сих пор не было обнаружено различий между iPhone и iPad.
Ответ 11
iOS 10
Используйте app-prefs:
App-prefs:root=MOBILE_DATA_SETTINGS_ID
См. gist
Ответ 12
Я обновляю одну новость здесь.
Использование "prefs:" не отклоняется Apple, я тестировал его и проверял, утвердил его в магазине приложений (в августе 2016 года). ТНХ.
Ответ 13
Работает отлично для настроек уведомления приложений на IOS 10 (проверено)
if(&UIApplicationOpenSettingsURLString != nil){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}