Недавно я обнаружил потрясающую схему URL-адресов пользовательских настроек iOS5 , которую можно подробно объяснить на этом замечательном веб-сайте .
Я обнаружил, что это работает, направляя пользователя в приложение настроек из моего приложения:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
Но, похоже, не может напрямую перейти к пути ограничений через path
параметр:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
Кто-нибудь нашел документацию по этому поводу или смог сделать эту работу?
Приветствуется любое понимание. Я пытаюсь заставить пользователя включить покупку в приложении и не хотел бы, чтобы пользователь вручную нажимал на Ограничения (не очень очевидно).
ios
iphone
settings
url-scheme
uiapplication
kturner
источник
источник
Ответы:
КАК ОТВЕТ @Nix Wang : ЭТО НЕ РАБОТАЕТ В IOS 10
ВНИМАНИЕ: этот метод не будет работать для устройств под управлением iOS 5.1 и выше - см. Комментарий Хлунга ниже.
Возможно, что
path
компонент имеет другое имя, чем фактический раздел, но также возможно, что в настоящее время вы не можете получить доступ к этому разделу прямо по URL-адресу. Я нашел список возможных URL-адресов, и в нем нет ограничений, возможно, он просто еще не выяснен.Список известных на данный момент URL-адресов в приложении "Настройки":
источник
[NSURL URLWithString:UIApplicationOpenSettingsURLString]
Начиная с iOS8 вы можете открыть встроенное приложение настроек с помощью:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }
Фактическая строка URL-адреса -
@"app-settings:"
. Я пробовал добавлять в строку разные разделы («Bluetooth», «ОБЩИЕ» и т. Д.), Но, похоже, работает только ссылка на главный экран настроек. Отправьте ответ, если узнаете иное.источник
Если вы добавите схему URL-адресов prefs в свое приложение для iOS, это позволит вам использовать все те схемы, которые мы могли использовать в iOS 5. Я тестировал ее на iOS 9, но я думаю, что она будет работать и в более старых версиях.
источник
Обновить:
prefs:
НЕ будет работать с iOS 10.источник
prefs:
больше не работает, следующее работает (по крайней мере, в общих чертах):App-Prefs::root=Settings&path=General
Да, видел это (и многое другое), даже реализовал это в тестовом приложении. На самом деле необходимо получить окончательное слово от Apple, но по общему мнению сообщества, Apple запретила его в версии 5.1 после того, как он был публично «обнаружен / опубликован», поэтому приложения, содержащие его, не будут приняты.
08/01/12 Обновление: спросил Apple через мою учетную запись разработчика, есть ли способ программно запустить диалоговое окно настроек WiFi. Вот ответ:
источник
В iOS 9 снова работает!
Чтобы открыть Настройки> Общие> Клавиатура , я использую:
prefs:root=General&path=Keyboard
Более того, на Клавиатуры можно пойти дальше :
prefs:root=General&path=Keyboard/KEYBOARDS
источник
LSApplicationQueriesSchemes
вinfo.plist
?Я хотел открыть меню Bluetooth в приложении настроек, но указанный выше путь (prefs: root = General & path = Bluetooth) у меня не работал. Что в итоге сработало для меня, так это
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
prefs
Сначала убедитесь, что у вас определена схема URL.источник
prefs
про материал.Решение для 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-адреса (вы можете увидеть их в ответе, получившем наибольшее количество голосов), чтобы открыть определенные настройки. Например, ниже открывается touchID и пароль.
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
источник
App-Prefs
- это частный API, который приведет к отклонению приложения во время проверки.Вот еще кое-что, что я нашел:
После того, как я определил схему URL-адресов «prefs», «prefs: root = Safari & path = ContentBlockers» работает с Simulator (iOS 9.1 на английском языке ), но не работает с Simulator (упрощенный китайский) . Он просто переходит в Safari, но не в Content Blockers. Если ваше приложение является международным, будьте осторожны.
Обновление: не знаю почему, теперь я больше не могу перейти в ContentBlockers, тот же код, та же версия теперь не работает. :(
На реальных устройствах (у меня 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.
источник
Прекрасно работает для настроек уведомлений приложений на IOS 10 (проверено)
if(&UIApplicationOpenSettingsURLString != nil){ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; }
источник
iOS 10
Использовать
app-prefs:
App-prefs:root=MOBILE_DATA_SETTINGS_ID
Увидеть суть
источник
Я обновляю одну новость здесь. Использование только prefs: НЕ отклоняется Apple, я протестировал его и проверил, одобрено в магазине приложений (в августе 2016 г.). Спасибо.
источник
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];
для открытой настройки DND устройства. Apple отклонит это?