настройки запуска iOS - > схема URL ограничений
недавно я обнаружил удивительный iOS5 пользовательские настройки URL Scheme, что можно подробно объяснить на этом великом сайт.
Я нашел это для работы, направляя пользователя в приложение настроек из моего приложения:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
но, похоже, не может напрямую обращаться к ограничения путь через
13 ответов
AS @Nix Wangответ это не работа в IOS 10
предупреждение: этот метод не будет работать для устройств под управлением iOS 5.1 и выше - см. комментарий Hlung ниже.
возможно,path
компонент имеет другое имя, чем фактический раздел, но также возможно, что в настоящее время вы не можете получить доступ к этому разделу прямо из URL. Я нашел список возможных URL-адресов и ограничений на нем нет, может, просто еще не выяснили.
список известных в настоящее время URL в настройках приложения:
- префы: root=General&path=About
- префы: root=общие & path=доступность
- префы: root=AIRPLANE_MODE
- префы: root=General&path=AUTOLOCK
- префы: root=General&path=USAGE / CELLULAR_USAGE
- префы: root=яркость
- prefs: root=общие & path=Bluetooth
- префы: root=General&path=DATE_AND_TIME
- префы: root=FACETIME
- префы: root=General
- префы: root=общие и путь=клавиатура
- префы: root=замок
- префы: root=замок и путь=STORAGE_AND_BACKUP
- префы: root=General&path=INTERNATIONAL
- префы: root=LOCATION_SERVICES
- префы: root=ACCOUNT_SETTINGS
- префы: root=музыка
- префы: root=музыка и путь=EQ
- префы: root=музыка и путь=VolumeLimit
- префы: root=General&path=Network
- префы: root=NIKE_PLUS_IPOD
- префы: root=Примечания
- префы: root=NOTIFICATIONS_ID
- префы: root=телефон
- префы: root=фото
- префы: root=General&path=ManagedConfigurationList
- prefs: root=общие & путь=сброс
- префы: root=звуки и путь=рингтон
- префы: root=Safari
- префы: root=General&path=Assistant
- префы: root=звуки
- префы: root=General&path=SOFTWARE_UPDATE_LINK
- префы: root=STORE
- префы: root=TWITTER
- префы: root=General&path=USAGE
- префы: root=видео
- префы: root=общие & path=сеть / VPN
- префы: root=обои
- префы: root=WIFI
- префы: root=INTERNET_TETHERING
начиная с iOS8 вы можете открыть встроенное приложение Настройки с:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
фактическая строка URL-адреса @"app-settings:"
. Я попытался добавить различные разделы к строке ("Bluetooth", "общие" и т. д.) но, похоже, работает только ссылка на главный экран настроек. Отправьте ответ, если выясните обратное.
Если вы добавите схему URL префов в свое приложение iOS, это позволит вам использовать все те схемы, которые мы могли бы в iOS 5. Я тестировал его на iOS 9, но я думаю, что он будет работать и на более старых версиях.
Да, видел это (и многое другое), даже реализовал его в тестовом приложении. Действительно нужно получить окончательное слово от Apple, но мнение сообщества единодушно-Apple запретила его в 5.1 после того, как он был публично "обнаружен/опубликован", поэтому приложения, содержащие его, не будут приняты.
обновление 08/01/12: спросил Apple через мою учетную запись разработчика, если есть способ программно запустить диалоговое окно настроек WiFi. Вот ответ:
"наши инженеры рассмотрели ваше обращение и пришли к выводу, что нет поддерживаемого способа достижения желаемой функциональности текущие конфигурации системы доставки."
на iOS 9 он снова работает!
открыть Настройки > Общие > Клавиатура, Я:
prefs:root=General&path=Keyboard
более того, можно пойти дальше к клавиатуры:
prefs:root=General&path=Keyboard/KEYBOARDS
Я хотел открыть меню Bluetooth в приложении настроек, и вышеуказанный путь (префы:root=General&path=Bluetooth) не работал для меня. Что в конечном итоге работает для меня
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
убедитесь, что у вас есть prefs
схема URL определена первой.
решение для iOS10. Работать отлично.
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
начиная с iOS10 вы можете использовать
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
открыть общие настройки.
также вы можете добавить известные URL-адреса(их можно увидеть в наиболее upvoted ответ), чтобы открыть настройки. Например, ниже открывается touchID и пароль.
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
вот еще что я нашел:
после того, как я определил схему URL" prefs", "prefs: root=Safari & path=ContentBlockers" работает на симуляторе (iOS 9.1 английский язык), но не работает на тренажере (Упрощенный Китайский). Он просто переходит к Safari, но не блокирует контент. Если ваше приложение является международным, будьте осторожны.
Update: Не знаю, почему, теперь я больше не могу прыгать в ContentBlockers, тот же код, же версия, не работает сейчас. :(-
на реальных devcies (мой iPhone 6S & iPad mini 2), "сафари" должно быть "сафари", "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.
отлично работает для настроек уведомлений приложений на IOS 10 (протестировано)
if(&UIApplicationOpenSettingsURLString != nil){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
Я обновляю одну новость здесь. Использование "prefs:" только не отклоняется Apple, я протестировал его и проверил, одобрен в app store(в августе 2016 года). тнх.